Author: bleny Date: 2011-07-01 15:06:25 +0000 (Fri, 01 Jul 2011) New Revision: 1365 Log: add validation when importing for ObsDeb + test Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSamplingImpl.java Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSamplingImpl.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSamplingImpl.java 2011-07-01 12:17:03 UTC (rev 1364) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSamplingImpl.java 2011-07-01 15:06:25 UTC (rev 1365) @@ -284,7 +284,14 @@ row.setDCF5Code(insertOrSelect(transaction, row.getDCF5Code())); } - if (row.getObsProgram() != ObsProgram.OBSDEB) { + if (row.getObsProgram() == ObsProgram.OBSDEB) { + ValidationResult validationResult = executeValidateSampleRow(transaction, row); + if ( ! validationResult.isSuccess()) { + throw new IllegalArgumentException( + "Erreur de validation de la ligne " + row.getCode() + + ". " + validationResult.getMessage()); + } + } else { updateElligibleBoats(transaction, row, boats); } @@ -1117,7 +1124,11 @@ timeLog.log(startReadLine, "import one line"); } catch (Exception e) { - WaoBusinessException waoBusinessException = new WaoBusinessException(e.getMessage() + "\n" + e.getCause().getMessage(), e); + String message = e.getMessage(); + if (e.getCause() != null) { + message += "\n" + e.getCause().getMessage(); + } + WaoBusinessException waoBusinessException = new WaoBusinessException(message, e); errorArgs.add(-1); errorArgs.add(sampleRow == null ? "" : sampleRow.getCode()); //errorArgs.add(e.getMessage()); @@ -1593,7 +1604,7 @@ for (WaoUser observer : sampleRow.getObservers()) { samplingFilter.setSampleRowObserver(observer); - List<SampleRow> conflictingSampleRows = executeGetSampleRowsByFilter(transaction, samplingFilter); + List<SampleRow> conflictingSampleRows = getSampleRowsByFilter(samplingFilter); // remove sampleRow from the list, it can't be in conflict with itself SampleRow rowToRemove = sampleRow; for (SampleRow conflictingSampleRow : conflictingSampleRows) {