This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit 5a3a7db1d07ca76b56224e9cfc41cd6db4801e21 Author: Tony CHEMIT <dev@tchemit.fr> Date: Sat Dec 31 19:18:29 2016 +0100 [iso] fix possible bugs in code --- .../swing/ui/content/ObserveActionMap.java | 4 +- .../LonglineDetailCompositionUIInitializer.java | 3 +- ...onglineDetailCompositionUIValidationHelper.java | 8 +- .../migration/H2DataSourceMigration.java | 86 ++++----- .../migration/PGDataSourceMigration.java | 197 ++++++++++----------- .../ird/observe/services/binder/BinderSupport.java | 2 + .../services/rest/ObserveServiceFactoryRest.java | 1 + .../seine/TripSeineGearUseServiceRestTest.java | 8 +- .../services/runner/ObserveServiceMainFactory.java | 8 +- .../observe/services/topia/ObserveJdbcHelper.java | 2 - .../UpdateSqlWithCascadeStatementGenerator.java | 13 +- .../longline/LonglinePositionSetDtoHelper.java | 4 +- .../service/data/seine/RouteServiceTopia.java | 2 +- .../topia/entity/LengthWeightParemetersTest.java | 22 +-- .../seine/TripSeineGearUseServiceTopiaTest.java | 8 +- .../ird/observe/services/ObserveFormRequests.java | 4 - .../services/dto/longline/SectionWithTemplate.java | 2 +- .../fr/ird/observe/services/gson/DateAdapter.java | 2 + .../services/service/actions/report/Report.java | 4 +- .../service/actions/report/ReportBuilder.java | 4 +- 20 files changed, 184 insertions(+), 200 deletions(-) diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ObserveActionMap.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ObserveActionMap.java index 358e40a..b85b125 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ObserveActionMap.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ObserveActionMap.java @@ -107,12 +107,12 @@ public class ObserveActionMap extends ActionMap { @Override public Action get(Object key) { - AbstractGlobalUIAction globalUIAction = globalActions.get(key); + AbstractGlobalUIAction globalUIAction = globalActions.get(key.toString()); if (globalUIAction != null) { return globalUIAction; } - Class<? extends AbstractUIAction> actionType = mapping.get(key); + Class<? extends AbstractUIAction> actionType = mapping.get(key.toString()); if (actionType == null) { return super.get(key); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/LonglineDetailCompositionUIInitializer.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/LonglineDetailCompositionUIInitializer.java index 15b7fac..ae2f73f 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/LonglineDetailCompositionUIInitializer.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/LonglineDetailCompositionUIInitializer.java @@ -224,7 +224,6 @@ public class LonglineDetailCompositionUIInitializer extends ContentUIInitializer EditableTableModelSupport model = (EditableTableModelSupport) getTable().getModel(); boolean canInsertBefore = model.isEmpty() || model.getSelectedRowIndex() > 0; - boolean canInsertAfter = true; boolean canDelete = !model.isSelectionEmpty(); if (canDelete) { @@ -237,7 +236,7 @@ public class LonglineDetailCompositionUIInitializer extends ContentUIInitializer ui.getDeleteSelectedSectionTemplate().setEnabled(canDelete); ui.getInsertBeforeSelectedSectionTemplate().setEnabled(canInsertBefore); - ui.getInsertAfterSelectedSectionTemplate().setEnabled(canInsertAfter); + ui.getInsertAfterSelectedSectionTemplate().setEnabled(true); } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/LonglineDetailCompositionUIValidationHelper.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/LonglineDetailCompositionUIValidationHelper.java index bd140d7..9ef8853 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/LonglineDetailCompositionUIValidationHelper.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/LonglineDetailCompositionUIValidationHelper.java @@ -30,10 +30,10 @@ import fr.ird.observe.services.dto.longline.BasketDto; import fr.ird.observe.services.dto.longline.BranchlineDto; import fr.ird.observe.services.dto.longline.SectionDto; import fr.ird.observe.services.dto.longline.SectionWithTemplate; -import org.nuiton.jaxx.validator.swing.SwingValidator; -import org.nuiton.jaxx.validator.swing.SwingValidatorMessage; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.nuiton.jaxx.validator.swing.SwingValidator; +import org.nuiton.jaxx.validator.swing.SwingValidatorMessage; import org.nuiton.validator.bean.simple.SimpleBeanValidator; import javax.swing.JComponent; @@ -60,7 +60,7 @@ public class LonglineDetailCompositionUIValidationHelper { private final LonglineDetailCompositionValidatorService validatorService; - private final Set<SwingValidator> validators; + private final Set<SimpleBeanValidator<?>> validators; public LonglineDetailCompositionUIValidationHelper(LonglineDetailCompositionUI ui, DecoratorService decoratorService) { this.model = ui.getModel(); @@ -69,7 +69,7 @@ public class LonglineDetailCompositionUIValidationHelper { SwingValidator<BasketDto> basketValidator = ui.getBasketValidator(); SwingValidator<BranchlineDto> branchlineValidator = ui.getBranchlineValidator(); - this.validators = ImmutableSet.<SwingValidator>builder().add( + this.validators = ImmutableSet.<SimpleBeanValidator<?>>builder().add( sectionValidator, basketValidator, branchlineValidator diff --git a/persistence/src/main/java/fr/ird/observe/persistence/migration/H2DataSourceMigration.java b/persistence/src/main/java/fr/ird/observe/persistence/migration/H2DataSourceMigration.java index 6d847cd..417a02e 100644 --- a/persistence/src/main/java/fr/ird/observe/persistence/migration/H2DataSourceMigration.java +++ b/persistence/src/main/java/fr/ird/observe/persistence/migration/H2DataSourceMigration.java @@ -60,21 +60,19 @@ public class H2DataSourceMigration extends AbstractDataSourceMigration { tx.doSqlWork(connection -> { String sql = "select CONSTRAINT_NAME from INFORMATION_SCHEMA.Constraints where CONSTRAINT_TYPE='UNIQUE' AND TABLE_NAME=? AND Column_list =?;"; - PreparedStatement ps = connection.prepareStatement(sql); - ps.setString(1, tableName.toUpperCase()); - ps.setString(2, columnName.toUpperCase()); - try { - ResultSet set = ps.executeQuery(); - if (set.next()) { - String constraintName = set.getString(1); - if (log.isDebugEnabled()) - log.debug("found constraint of type unique for table " + tableName + " and column " + columnName + ": " + constraintName); - result.add(constraintName); + try (PreparedStatement ps = connection.prepareStatement(sql)) { + ps.setString(1, tableName.toUpperCase()); + ps.setString(2, columnName.toUpperCase()); + try (ResultSet set = ps.executeQuery()) { + if (set.next()) { + String constraintName = set.getString(1); + if (log.isDebugEnabled()) + log.debug("found constraint of type unique for table " + tableName + " and column " + columnName + ": " + constraintName); + result.add(constraintName); + } + } catch (Exception e) { + throw new SQLException("Could not obtain constraint unique for table" + tableName + " and column " + columnName, e); } - } catch (Exception e) { - throw new SQLException("Could not obtain constraint unique for table" + tableName + " and column " + columnName, e); - } finally { - ps.close(); } }); @@ -93,20 +91,18 @@ public class H2DataSourceMigration extends AbstractDataSourceMigration { tx.doSqlWork(connection -> { String sql = "select CONSTRAINT_NAME from INFORMATION_SCHEMA.Constraints where CONSTRAINT_TYPE='UNIQUE' AND TABLE_NAME=?;"; - PreparedStatement ps = connection.prepareStatement(sql); - ps.setString(1, tableName.toUpperCase()); - try { - ResultSet set = ps.executeQuery(); - if (set.next()) { - String constraintName = set.getString(1); - if (log.isDebugEnabled()) - log.debug("found constraint of type unique for table " + tableName + " : " + constraintName); - result.add(constraintName); + try (PreparedStatement ps = connection.prepareStatement(sql)) { + ps.setString(1, tableName.toUpperCase()); + try (ResultSet set = ps.executeQuery()) { + if (set.next()) { + String constraintName = set.getString(1); + if (log.isDebugEnabled()) + log.debug("found constraint of type unique for table " + tableName + " : " + constraintName); + result.add(constraintName); + } + } catch (Exception e) { + throw new SQLException("Could not obtain constraint unique for table " + tableName, e); } - } catch (Exception e) { - throw new SQLException("Could not obtain constraint unique for table " + tableName, e); - } finally { - ps.close(); } }); @@ -124,10 +120,11 @@ public class H2DataSourceMigration extends AbstractDataSourceMigration { tx.doSqlWork(connection -> { String sql = String.format("SELECT DISTINCT constraint_name FROM INFORMATION_SCHEMA.Constraints WHERE (CONSTRAINT_TYPE='UNIQUE' OR CONSTRAINT_TYPE='REFERENTIAL') AND TABLE_NAME='%S';", tableName); try (PreparedStatement ps = connection.prepareStatement(sql)) { - ResultSet set = ps.executeQuery(); - while (set.next()) { - String constraintName = set.getString(1); - result.add(constraintName); + try (ResultSet set = ps.executeQuery()) { + while (set.next()) { + String constraintName = set.getString(1); + result.add(constraintName); + } } } catch (Exception e) { throw new SQLException("Could not obtain constraints for table " + tableName, e); @@ -144,10 +141,11 @@ public class H2DataSourceMigration extends AbstractDataSourceMigration { tx.doSqlWork(connection -> { String sql = String.format("SELECT DISTINCT constraint_name FROM INFORMATION_SCHEMA.Constraints WHERE CONSTRAINT_TYPE='REFERENTIAL' AND TABLE_NAME='%S';", tableName); try (PreparedStatement ps = connection.prepareStatement(sql)) { - ResultSet set = ps.executeQuery(); - while (set.next()) { - String constraintName = set.getString(1); - result.add(constraintName); + try (ResultSet set = ps.executeQuery()) { + while (set.next()) { + String constraintName = set.getString(1); + result.add(constraintName); + } } } catch (Exception e) { throw new SQLException("Could not obtain constraints for table " + tableName, e); @@ -168,10 +166,11 @@ public class H2DataSourceMigration extends AbstractDataSourceMigration { "AND TABLE_NAME='%S' " + "AND COLUMN_LIST='%S';", schemaName, tableName, columnName); try (PreparedStatement ps = connection.prepareStatement(sql)) { - ResultSet set = ps.executeQuery(); - while (set.next()) { - String constraintName = set.getString(1); - result.add(constraintName); + try (ResultSet set = ps.executeQuery()) { + while (set.next()) { + String constraintName = set.getString(1); + result.add(constraintName); + } } } catch (Exception e) { throw new SQLException("Could not obtain constraints for table " + tableName, e); @@ -206,10 +205,11 @@ public class H2DataSourceMigration extends AbstractDataSourceMigration { tx.doSqlWork(connection -> { String sql = String.format("SELECT DISTINCT constraint_name FROM INFORMATION_SCHEMA.Constraints WHERE CONSTRAINT_TYPE='UNIQUE' AND TABLE_NAME='%S';", tableName); try (PreparedStatement ps = connection.prepareStatement(sql)) { - ResultSet set = ps.executeQuery(); - while (set.next()) { - String constraintName = set.getString(1); - result.add(constraintName); + try (ResultSet set = ps.executeQuery()) { + while (set.next()) { + String constraintName = set.getString(1); + result.add(constraintName); + } } } catch (Exception e) { throw new SQLException("Could not obtain constraints for table " + tableName, e); diff --git a/persistence/src/main/java/fr/ird/observe/persistence/migration/PGDataSourceMigration.java b/persistence/src/main/java/fr/ird/observe/persistence/migration/PGDataSourceMigration.java index 7627d22..55f80c3 100644 --- a/persistence/src/main/java/fr/ird/observe/persistence/migration/PGDataSourceMigration.java +++ b/persistence/src/main/java/fr/ird/observe/persistence/migration/PGDataSourceMigration.java @@ -32,6 +32,7 @@ import java.sql.SQLException; import java.util.ArrayList; import java.util.HashSet; import java.util.List; +import java.util.Objects; import java.util.Set; /** @@ -64,60 +65,54 @@ public class PGDataSourceMigration extends AbstractDataSourceMigration { String sqlOid = "select oid from pg_class where relname=?;"; { - PreparedStatement ps = connection.prepareStatement(sqlOid); - ps.setString(1, tableName.toLowerCase()); - try { - ResultSet set = ps.executeQuery(); - if (set.next()) { - oid = set.getString(1); - if (log.isDebugEnabled()) - log.debug("found table oid " + tableName + ": " + oid); + try (PreparedStatement ps = connection.prepareStatement(sqlOid)) { + ps.setString(1, tableName.toLowerCase()); + try (ResultSet set = ps.executeQuery()) { + if (set.next()) { + oid = set.getString(1); + if (log.isDebugEnabled()) + log.debug("found table oid " + tableName + ": " + oid); + } + } catch (Exception e) { + throw new SQLException("Could not obtain oid for table" + tableName, e); } - } catch (Exception e) { - throw new SQLException("Could not obtain oid for table" + tableName, e); - } finally { - ps.close(); } } - + Objects.requireNonNull(oid); // get attribute num String attNumSql = "select attnum from pg_attribute where attrelid=? AND attname =?"; String attNum = null; { - PreparedStatement ps = connection.prepareStatement(attNumSql); - ps.setInt(1, Integer.valueOf(oid)); - ps.setString(2, columnName.toLowerCase()); - try { - ResultSet set = ps.executeQuery(); - if (set.next()) { - attNum = set.getString(1); - if (log.isDebugEnabled()) - log.debug("found attribute " + columnName + " attNum : " + attNum); + try (PreparedStatement ps = connection.prepareStatement(attNumSql)) { + ps.setInt(1, Integer.valueOf(oid)); + ps.setString(2, columnName.toLowerCase()); + try (ResultSet set = ps.executeQuery()) { + if (set.next()) { + attNum = set.getString(1); + if (log.isDebugEnabled()) + log.debug("found attribute " + columnName + " attNum : " + attNum); + } + } catch (Exception e) { + throw new SQLException("Could not obtain attNum for column" + columnName, e); } - } catch (Exception e) { - throw new SQLException("Could not obtain attNum for column" + columnName, e); - } finally { - ps.close(); } } String sql = "SELECT conname FROM pg_constraint where contype='u' and conrelid= ? and conkey = '{" + attNum + "}';"; - PreparedStatement ps = connection.prepareStatement(sql); - ps.setInt(1, Integer.valueOf(oid)); - try { - ResultSet set = ps.executeQuery(); + try (PreparedStatement ps = connection.prepareStatement(sql)) { + ps.setInt(1, Integer.valueOf(oid)); + try (ResultSet set = ps.executeQuery()) { - if (set.next()) { - String constraintName = set.getString(1); - if (log.isDebugEnabled()) - log.debug("found constraint of type unique for table " + tableName + " and column " + columnName + ": " + constraintName); - result.add(constraintName); + if (set.next()) { + String constraintName = set.getString(1); + if (log.isDebugEnabled()) + log.debug("found constraint of type unique for table " + tableName + " and column " + columnName + ": " + constraintName); + result.add(constraintName); + } + } catch (Exception e) { + throw new SQLException("Could not obtain constraint unique for table" + tableName + " and column " + columnName, e); } - } catch (Exception e) { - throw new SQLException("Could not obtain constraint unique for table" + tableName + " and column " + columnName, e); - } finally { - ps.close(); } }); @@ -136,20 +131,19 @@ public class PGDataSourceMigration extends AbstractDataSourceMigration { tx.doSqlWork(connection -> { String sql = "SELECT conname FROM pg_constraint where contype='u' and conrelid= (select oid from pg_class where relname=?);"; - PreparedStatement ps = connection.prepareStatement(sql); - ps.setString(1, tableName.toLowerCase()); - try { - ResultSet set = ps.executeQuery(); - if (set.next()) { - String constraintName = set.getString(1); - if (log.isDebugEnabled()) - log.debug("found constraint of type unique for table " + tableName + " : " + constraintName); - result.add(constraintName); + try (PreparedStatement ps = connection.prepareStatement(sql)) { + ps.setString(1, tableName.toLowerCase()); + try (ResultSet set = ps.executeQuery()) { + if (set.next()) { + String constraintName = set.getString(1); + if (log.isDebugEnabled()) + log.debug("found constraint of type unique for table " + tableName + " : " + constraintName); + result.add(constraintName); + } + + } catch (Exception e) { + throw new SQLException("Could not obtain constraint unique for table " + tableName, e); } - } catch (Exception e) { - throw new SQLException("Could not obtain constraint unique for table " + tableName, e); - } finally { - ps.close(); } }); @@ -167,10 +161,11 @@ public class PGDataSourceMigration extends AbstractDataSourceMigration { tx.doSqlWork(connection -> { String sql = String.format("SELECT DISTINCT conname FROM pg_constraint WHERE ( contype='u' OR contype='f' ) AND conrelid = (SELECT oid FROM pg_class WHERE relname='%s');", tableName.toLowerCase()); try (PreparedStatement ps = connection.prepareStatement(sql)) { - ResultSet set = ps.executeQuery(); - while (set.next()) { - String constraintName = set.getString(1); - result.add(constraintName); + try (ResultSet set = ps.executeQuery()) { + while (set.next()) { + String constraintName = set.getString(1); + result.add(constraintName); + } } } catch (Exception e) { throw new SQLException("Could not obtain constraints for table " + tableName, e); @@ -187,10 +182,11 @@ public class PGDataSourceMigration extends AbstractDataSourceMigration { tx.doSqlWork(connection -> { String sql = String.format("SELECT DISTINCT conname FROM pg_constraint WHERE ( contype='f' ) AND conrelid = (SELECT oid FROM pg_class WHERE relname='%s');", tableName.toLowerCase()); try (PreparedStatement ps = connection.prepareStatement(sql)) { - ResultSet set = ps.executeQuery(); - while (set.next()) { - String constraintName = set.getString(1); - result.add(constraintName); + try (ResultSet set = ps.executeQuery()) { + while (set.next()) { + String constraintName = set.getString(1); + result.add(constraintName); + } } } catch (Exception e) { throw new SQLException("Could not obtain constraints for table " + tableName, e); @@ -207,64 +203,62 @@ public class PGDataSourceMigration extends AbstractDataSourceMigration { tx.doSqlWork(connection -> { - // get table oid String oid = null; String sqlOid = "select oid from pg_class where relnamespace = (select oid from pg_catalog.pg_namespace where nspname=?) AND relname=?;"; { - PreparedStatement ps = connection.prepareStatement(sqlOid); - ps.setString(1, schemaName.toLowerCase()); - ps.setString(2, tableName.toLowerCase()); - try { - ResultSet set = ps.executeQuery(); - if (set.next()) { - oid = set.getString(1); - if (log.isDebugEnabled()) - log.debug("found table oid " + tableName + ": " + oid); + try (PreparedStatement ps = connection.prepareStatement(sqlOid)) { + ps.setString(1, schemaName.toLowerCase()); + ps.setString(2, tableName.toLowerCase()); + try (ResultSet set = ps.executeQuery()) { + if (set.next()) { + oid = set.getString(1); + if (log.isDebugEnabled()) + log.debug("found table oid " + tableName + ": " + oid); + } } } catch (Exception e) { throw new SQLException("Could not obtain oid for table" + tableName, e); - } finally { - ps.close(); + } } + Objects.requireNonNull(oid); // get attribute num String attNumSql = "select attnum from pg_attribute where attrelid=? AND attname =?"; String attNum = null; { - PreparedStatement ps = connection.prepareStatement(attNumSql); - ps.setInt(1, Integer.valueOf(oid)); - ps.setString(2, columnName.toLowerCase()); - try { - ResultSet set = ps.executeQuery(); - if (set.next()) { - attNum = set.getString(1); - if (log.isDebugEnabled()) - log.debug("found attribute " + columnName + " attNum : " + attNum); + try (PreparedStatement ps = connection.prepareStatement(attNumSql)) { + ps.setInt(1, Integer.valueOf(oid)); + ps.setString(2, columnName.toLowerCase()); + try { + try (ResultSet set = ps.executeQuery()) { + if (set.next()) { + attNum = set.getString(1); + if (log.isDebugEnabled()) + log.debug("found attribute " + columnName + " attNum : " + attNum); + } + } + } catch (Exception e) { + throw new SQLException("Could not obtain attNum for column" + columnName, e); } - } catch (Exception e) { - throw new SQLException("Could not obtain attNum for column" + columnName, e); - } finally { - ps.close(); } } String sql = "SELECT DISTINCT conname FROM pg_constraint WHERE contype='f' AND conrelid = ? AND conkey = '{" + attNum + "}';"; - PreparedStatement ps = connection.prepareStatement(sql); - ps.setInt(1, Integer.valueOf(oid)); - - try { - ResultSet set = ps.executeQuery(); - while (set.next()) { - String constraintName = set.getString(1); - result.add(constraintName); + try (PreparedStatement ps = connection.prepareStatement(sql)) { + ps.setInt(1, Integer.valueOf(oid)); + try { + try (ResultSet set = ps.executeQuery()) { + while (set.next()) { + String constraintName = set.getString(1); + result.add(constraintName); + } + } + } catch (Exception e) { + throw new SQLException("Could not obtain constraints for table " + tableName, e); } - } catch (Exception e) { - throw new SQLException("Could not obtain constraints for table " + tableName, e); - } finally { - ps.close(); } }); @@ -295,10 +289,11 @@ public class PGDataSourceMigration extends AbstractDataSourceMigration { tx.doSqlWork(connection -> { String sql = String.format("SELECT DISTINCT conname FROM pg_constraint WHERE ( contype='u' ) AND conrelid = (SELECT oid FROM pg_class WHERE relname='%s');", tableName.toLowerCase()); try (PreparedStatement ps = connection.prepareStatement(sql)) { - ResultSet set = ps.executeQuery(); - while (set.next()) { - String constraintName = set.getString(1); - result.add(constraintName); + try (ResultSet set = ps.executeQuery()) { + while (set.next()) { + String constraintName = set.getString(1); + result.add(constraintName); + } } } catch (Exception e) { throw new SQLException("Could not obtain constraints for table " + tableName, e); diff --git a/services-binder/src/main/java/fr/ird/observe/services/binder/BinderSupport.java b/services-binder/src/main/java/fr/ird/observe/services/binder/BinderSupport.java index 7c20c88..aad8489 100644 --- a/services-binder/src/main/java/fr/ird/observe/services/binder/BinderSupport.java +++ b/services-binder/src/main/java/fr/ird/observe/services/binder/BinderSupport.java @@ -43,6 +43,7 @@ import java.util.ArrayList; import java.util.Collection; import java.util.LinkedHashSet; import java.util.List; +import java.util.Objects; /** * Created on 24/11/15. @@ -96,6 +97,7 @@ public abstract class BinderSupport<E extends TopiaEntity, D extends IdDto> { entityList = new LinkedHashSet<>(references.size()); ReferentialReference<DD> firstReference = Iterables.get(references, 0, null); + Objects.requireNonNull(firstReference); Class<DD> type = firstReference.getType(); ReferentialBinderSupport<EE, DD> binder = BinderEngine.get().getReferentialBinder(type); diff --git a/services-rest/src/main/java/fr/ird/observe/services/rest/ObserveServiceFactoryRest.java b/services-rest/src/main/java/fr/ird/observe/services/rest/ObserveServiceFactoryRest.java index 4ecdace..74ae552 100644 --- a/services-rest/src/main/java/fr/ird/observe/services/rest/ObserveServiceFactoryRest.java +++ b/services-rest/src/main/java/fr/ird/observe/services/rest/ObserveServiceFactoryRest.java @@ -339,6 +339,7 @@ public class ObserveServiceFactoryRest extends ObserveServiceFactorySupport impl } // si c'est un type parametré, on envoie la class correspondante a ce type if (parameter.getParameterizedType() instanceof TypeVariable) { + Objects.requireNonNull(value); TypeVariable typeVariable = (TypeVariable) parameter.getParameterizedType(); requestBuilder.addParameter(PARAMETERIZED_TYPE_PREFIX + typeVariable.getName(), value.getClass().getCanonicalName()); diff --git a/services-rest/src/test/java/fr/ird/observe/services/rest/service/seine/TripSeineGearUseServiceRestTest.java b/services-rest/src/test/java/fr/ird/observe/services/rest/service/seine/TripSeineGearUseServiceRestTest.java index 101f28d..b080aa7 100644 --- a/services-rest/src/test/java/fr/ird/observe/services/rest/service/seine/TripSeineGearUseServiceRestTest.java +++ b/services-rest/src/test/java/fr/ird/observe/services/rest/service/seine/TripSeineGearUseServiceRestTest.java @@ -196,8 +196,8 @@ public class TripSeineGearUseServiceRestTest extends AbstractServiceRestTest { .stream() .filter(IdHelper.newIdPredicate(ObserveFixtures.GEAR_USE_FEATURES_SEINE_ID_1)) .findFirst() - .get(); - + .orElse(null); + Assert.assertNotNull(featuresSeineDto); featuresSeineDto.setNumber(12); featuresSeineDto.setComment("Un Commentaire"); for (GearUseFeaturesMeasurementSeineDto measurementSeineDto : featuresSeineDto.getGearUseFeaturesMeasurement()) { @@ -220,8 +220,8 @@ public class TripSeineGearUseServiceRestTest extends AbstractServiceRestTest { .stream() .filter(IdHelper.newIdPredicate(ObserveFixtures.GEAR_USE_FEATURES_SEINE_ID_1)) .findFirst() - .get(); - + .orElse(null); + Assert.assertNotNull(feature1); Assert.assertEquals(ObserveFixtures.GEAR_USE_FEATURES_SEINE_ID_1, feature1.getId()); Assert.assertEquals("fr.ird.observe.entities.referentiel.Gear#1239832686125#0.25", feature1.getGear().getId()); diff --git a/services-runner/src/main/java/fr/ird/observe/services/runner/ObserveServiceMainFactory.java b/services-runner/src/main/java/fr/ird/observe/services/runner/ObserveServiceMainFactory.java index 9ae4535..3b40500 100644 --- a/services-runner/src/main/java/fr/ird/observe/services/runner/ObserveServiceMainFactory.java +++ b/services-runner/src/main/java/fr/ird/observe/services/runner/ObserveServiceMainFactory.java @@ -71,16 +71,16 @@ public class ObserveServiceMainFactory implements ObserveServiceFactory { @Override public <S extends ObserveService> boolean accept(ObserveDataSourceConfiguration dataSourceConfiguration, Class<S> serviceType) { - ObserveServiceFactory factory = getFactory(dataSourceConfiguration, serviceType); - return factory != null; + getFactory(dataSourceConfiguration, serviceType); + return true; } @Override public <S extends ObserveService> boolean accept(ObserveDataSourceConnection dataSourceConnection, Class<S> serviceType) { - ObserveServiceFactory factory = getFactory(dataSourceConnection, serviceType); - return factory != null; + getFactory(dataSourceConnection, serviceType); + return true; } diff --git a/services-topia/src/main/java/fr/ird/observe/services/topia/ObserveJdbcHelper.java b/services-topia/src/main/java/fr/ird/observe/services/topia/ObserveJdbcHelper.java index 99a690a..48768dd 100644 --- a/services-topia/src/main/java/fr/ird/observe/services/topia/ObserveJdbcHelper.java +++ b/services-topia/src/main/java/fr/ird/observe/services/topia/ObserveJdbcHelper.java @@ -60,7 +60,6 @@ public class ObserveJdbcHelper extends JdbcHelper { public Set<String> getTablePrivileges(String schema, String tableName) { Connection connection = null; - PreparedStatement preparedStatement = null; try { connection = openConnection(); DatabaseMetaData metaData = connection.getMetaData(); @@ -89,7 +88,6 @@ public class ObserveJdbcHelper extends JdbcHelper { } catch (SQLException e) { throw new RuntimeException(e); } finally { - closeQuietly(preparedStatement); closeQuietly(connection); } diff --git a/services-topia/src/main/java/fr/ird/observe/services/topia/service/actions/synchro/referential/sql/UpdateSqlWithCascadeStatementGenerator.java b/services-topia/src/main/java/fr/ird/observe/services/topia/service/actions/synchro/referential/sql/UpdateSqlWithCascadeStatementGenerator.java index 26a30eb..ac61050 100644 --- a/services-topia/src/main/java/fr/ird/observe/services/topia/service/actions/synchro/referential/sql/UpdateSqlWithCascadeStatementGenerator.java +++ b/services-topia/src/main/java/fr/ird/observe/services/topia/service/actions/synchro/referential/sql/UpdateSqlWithCascadeStatementGenerator.java @@ -24,8 +24,8 @@ package fr.ird.observe.services.topia.service.actions.synchro.referential.sql; import com.google.common.collect.ImmutableList; import com.google.common.collect.Multimap; -import fr.ird.observe.services.dto.referential.ReferentialDto; import fr.ird.observe.services.dto.reference.ReferentialReference; +import fr.ird.observe.services.dto.referential.ReferentialDto; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.topia.persistence.metadata.TopiaMetadataEntity; @@ -46,8 +46,6 @@ public abstract class UpdateSqlWithCascadeStatementGenerator<R extends Referenti private final UpdateSqlStatementGenerator<R> delegateGenerator; private final Multimap<Class<? extends ReferentialDto>, String> idsOnlyExistingOnThisSide; - private final StringBuilder sqlBuilder = new StringBuilder(); - public UpdateSqlWithCascadeStatementGenerator(TopiaMetadataEntity metadataEntity, Class<R> dtoType, Multimap<Class<? extends ReferentialDto>, String> idsOnlyExistingOnThisSide) { @@ -78,11 +76,7 @@ public abstract class UpdateSqlWithCascadeStatementGenerator<R extends Referenti public ImmutableList<String> generateSql(R referentialDto) { - ImmutableList<String> sqls = delegateGenerator.generateSql(referentialDto); - for (String sql : sqls) { - sqlBuilder.append(sql); - } - return sqls; + return delegateGenerator.generateSql(referentialDto); } @@ -92,9 +86,6 @@ public abstract class UpdateSqlWithCascadeStatementGenerator<R extends Referenti // il faut insérer aussi ce référentiel ImmutableList<String> sqls = insertMissingReferential(associationType, associationId); - for (String sql : sqls) { - sqlBuilder.append(sql); - } // ce référentiel est désormais présent dans les deux sources idsOnlyExistingOnThisSide.remove(associationType, associationId); diff --git a/services-topia/src/main/java/fr/ird/observe/services/topia/service/data/longline/LonglinePositionSetDtoHelper.java b/services-topia/src/main/java/fr/ird/observe/services/topia/service/data/longline/LonglinePositionSetDtoHelper.java index 9398e80..8f24f4e 100644 --- a/services-topia/src/main/java/fr/ird/observe/services/topia/service/data/longline/LonglinePositionSetDtoHelper.java +++ b/services-topia/src/main/java/fr/ird/observe/services/topia/service/data/longline/LonglinePositionSetDtoHelper.java @@ -78,7 +78,7 @@ public class LonglinePositionSetDtoHelper { DataReference<BasketDto> basketRefWithSection = positionSetDto.getBaskets().stream() .filter(b -> basketRef.getId().equals(b.getId())) .findFirst() - .get(); + .orElse(null); positionDto.setBasket(basketRefWithSection); @@ -91,7 +91,7 @@ public class LonglinePositionSetDtoHelper { DataReference<BranchlineDto> branchlineRefWithSection = positionSetDto.getBranchlines().stream() .filter(b -> branchlineRef.getId().equals(b.getId())) .findFirst() - .get(); + .orElse(null); positionDto.setBranchline(branchlineRefWithSection); diff --git a/services-topia/src/main/java/fr/ird/observe/services/topia/service/data/seine/RouteServiceTopia.java b/services-topia/src/main/java/fr/ird/observe/services/topia/service/data/seine/RouteServiceTopia.java index 2d75499..61f5fa9 100644 --- a/services-topia/src/main/java/fr/ird/observe/services/topia/service/data/seine/RouteServiceTopia.java +++ b/services-topia/src/main/java/fr/ird/observe/services/topia/service/data/seine/RouteServiceTopia.java @@ -109,7 +109,7 @@ public class RouteServiceTopia extends ObserveServiceTopia implements RouteServi for (ActivitySeineStubDto activitySeineDto : activitySeineDtos) { - ActivitySeine activitySeine = activitySeines.stream().filter(TopiaEntities.entityHasId(activitySeineDto.getId())::apply).findFirst().get(); + ActivitySeine activitySeine = activitySeines.stream().filter(TopiaEntities.entityHasId(activitySeineDto.getId())::apply).findFirst().orElse(null); boolean isFindeVeille = activitySeine.getVesselActivitySeine() != null && ActivitySeineImpl.ACTIVITY_FIN_DE_VEILLE.equals(activitySeine.getVesselActivitySeine().getCode()); diff --git a/services-topia/src/test/java/fr/ird/observe/services/topia/entity/LengthWeightParemetersTest.java b/services-topia/src/test/java/fr/ird/observe/services/topia/entity/LengthWeightParemetersTest.java index 517b48e..866dd94 100644 --- a/services-topia/src/test/java/fr/ird/observe/services/topia/entity/LengthWeightParemetersTest.java +++ b/services-topia/src/test/java/fr/ird/observe/services/topia/entity/LengthWeightParemetersTest.java @@ -92,10 +92,10 @@ public class LengthWeightParemetersTest extends AbstractServiceTopiaTest { LengthWeightParameterTopiaDao lengthWeightParameterDao = persistenceContext.getLengthWeightParameterDao(); - Species species = optionalSpecies.get(); - Sex maleSex = optionalMaleSex.get(); - Ocean atlanticOcean = optionalAtlanticOcean.get(); - Ocean indianOcean = optionalIndianOcean.get(); + Species species = optionalSpecies.orElse(null); + Sex maleSex = optionalMaleSex.orElse(null); + Ocean atlanticOcean = optionalAtlanticOcean.orElse(null); + Ocean indianOcean = optionalIndianOcean.orElse(null); // Ajout parametrage Male / Atlantique (2010) createLengthWeightParameter(lengthWeightParameterDao, species, atlanticOcean, maleSex, firstStartDate, firstEndDate); @@ -175,13 +175,13 @@ public class LengthWeightParemetersTest extends AbstractServiceTopiaTest { Optional<Ocean> optionalPacificOcean = Optional.ofNullable(oceanDAO.forCodeEquals("3").tryFindUnique().orNull()); Assert.assertNotNull("Could not find ocean with code 3 (Pacific)", optionalPacificOcean.isPresent()); - Species species = optionalSpecies.get(); - Sex undeterminedSex = optionalUndeterminedSex.get(); - Sex maleSex = optionalMaleSex.get(); - Sex femaleSex = optionalFemaleSex.get(); - Ocean atlanticOcean = optionalAtlanticOcean.get(); - Ocean indianOcean = optionalIndianOcean.get(); - Ocean pacificOcean = optionalPacificOcean.get(); + Species species = optionalSpecies.orElse(null); + Sex undeterminedSex = optionalUndeterminedSex.orElse(null); + Sex maleSex = optionalMaleSex.orElse(null); + Sex femaleSex = optionalFemaleSex.orElse(null); + Ocean atlanticOcean = optionalAtlanticOcean.orElse(null); + Ocean indianOcean = optionalIndianOcean.orElse(null); + Ocean pacificOcean = optionalPacificOcean.orElse(null); assertFoundLengthWeightParameter(persistenceContext, species, atlanticOcean, null, undeterminedSex, date2009, date1970); assertFoundLengthWeightParameter(persistenceContext, species, atlanticOcean, undeterminedSex, undeterminedSex, date2009, date1970); diff --git a/services-topia/src/test/java/fr/ird/observe/services/topia/service/data/seine/TripSeineGearUseServiceTopiaTest.java b/services-topia/src/test/java/fr/ird/observe/services/topia/service/data/seine/TripSeineGearUseServiceTopiaTest.java index 3bb5401..c88e985 100644 --- a/services-topia/src/test/java/fr/ird/observe/services/topia/service/data/seine/TripSeineGearUseServiceTopiaTest.java +++ b/services-topia/src/test/java/fr/ird/observe/services/topia/service/data/seine/TripSeineGearUseServiceTopiaTest.java @@ -79,7 +79,7 @@ public class TripSeineGearUseServiceTopiaTest extends AbstractServiceTopiaTest { .stream() .filter(IdHelper.newIdPredicate(ObserveFixtures.GEAR_USE_FEATURES_SEINE_ID)) .findFirst() - .get(); + .orElse(null); Assert.assertEquals(featuresSeine.getTopiaId(), featuresSeineDto.getId()); assertEntityEqualsReferenceDto(featuresSeine.getGear(), featuresSeineDto.getGear()); @@ -94,7 +94,7 @@ public class TripSeineGearUseServiceTopiaTest extends AbstractServiceTopiaTest { .stream() .filter(TopiaEntities.entityHasId(measurementSeineDto.getId())::apply) .findFirst() - .get(); + .orElse(null); assertEntityEqualsReferenceDto(measurementSeine.getGearCaracteristic(), measurementSeineDto.getGearCaracteristic()); Assert.assertEquals(measurementSeine.getMeasurementValue(), measurementSeineDto.getMeasurementValue()); @@ -126,7 +126,7 @@ public class TripSeineGearUseServiceTopiaTest extends AbstractServiceTopiaTest { .stream() .filter(IdHelper.newIdPredicate(ObserveFixtures.GEAR_USE_FEATURES_SEINE_ID)) .findFirst() - .get(); + .orElse(null); gearUseFeaturesSeineDto.setNumber(12); gearUseFeaturesSeineDto.setComment("Un Commentaire"); @@ -157,7 +157,7 @@ public class TripSeineGearUseServiceTopiaTest extends AbstractServiceTopiaTest { .stream() .filter(TopiaEntities.entityHasId(measurementSeineDto.getId())::apply) .findFirst() - .get(); + .orElse(null); assertReferenceDtoEqualsEntity(measurementSeineDto.getGearCaracteristic(), measurementSeine.getGearCaracteristic()); Assert.assertEquals(measurementSeineDto.getMeasurementValue(), measurementSeine.getMeasurementValue()); diff --git a/services/src/main/java/fr/ird/observe/services/ObserveFormRequests.java b/services/src/main/java/fr/ird/observe/services/ObserveFormRequests.java index b36afaf..3857b1a 100644 --- a/services/src/main/java/fr/ird/observe/services/ObserveFormRequests.java +++ b/services/src/main/java/fr/ird/observe/services/ObserveFormRequests.java @@ -508,10 +508,6 @@ public enum ObserveFormRequests { public static FormRequestDefinition get(String definitionName) { ObserveFormRequests requestDefinitions = valueOf(definitionName); - if (requestDefinitions == null) { - throw new IllegalArgumentException("No definition with name " + definitionName + " registred"); - } - return requestDefinitions.getDefinition(); } diff --git a/services/src/main/java/fr/ird/observe/services/dto/longline/SectionWithTemplate.java b/services/src/main/java/fr/ird/observe/services/dto/longline/SectionWithTemplate.java index 6481b52..780914e 100644 --- a/services/src/main/java/fr/ird/observe/services/dto/longline/SectionWithTemplate.java +++ b/services/src/main/java/fr/ird/observe/services/dto/longline/SectionWithTemplate.java @@ -146,7 +146,7 @@ public class SectionWithTemplate extends SectionDto { @Override public boolean equals(Object o) { - return delegate.equals(o); + return o instanceof SectionWithTemplate && delegate.equals(o); } @Override diff --git a/services/src/main/java/fr/ird/observe/services/gson/DateAdapter.java b/services/src/main/java/fr/ird/observe/services/gson/DateAdapter.java index 9e04461..9566298 100644 --- a/services/src/main/java/fr/ird/observe/services/gson/DateAdapter.java +++ b/services/src/main/java/fr/ird/observe/services/gson/DateAdapter.java @@ -53,6 +53,7 @@ import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; +import java.util.Objects; import java.util.TimeZone; /** @@ -86,6 +87,7 @@ public class DateAdapter implements JsonSerializer<Date>, JsonDeserializer<Date> throw new JsonParseException("The date should be a string value"); } Date date = deserializeToDate(json); + Objects.requireNonNull(date); if (typeOfT == Date.class) { return date; } else if (typeOfT == Timestamp.class) { diff --git a/services/src/main/java/fr/ird/observe/services/service/actions/report/Report.java b/services/src/main/java/fr/ird/observe/services/service/actions/report/Report.java index 338e339..cfa9976 100644 --- a/services/src/main/java/fr/ird/observe/services/service/actions/report/Report.java +++ b/services/src/main/java/fr/ird/observe/services/service/actions/report/Report.java @@ -151,8 +151,8 @@ public class Report implements Serializable, ObserveDto { return t(name); } - public ReportVariable getRepeatVariable(final String name) { - return Lists.newArrayList(repeatVariables).stream().filter(reportVariable -> name.equals(reportVariable.getName())).findFirst().get(); + public ReportVariable getRepeatVariable(String name) { + return Lists.newArrayList(repeatVariables).stream().filter(reportVariable -> name.equals(reportVariable.getName())).findFirst().orElse(null); } public boolean canExecute() { diff --git a/services/src/main/java/fr/ird/observe/services/service/actions/report/ReportBuilder.java b/services/src/main/java/fr/ird/observe/services/service/actions/report/ReportBuilder.java index 4b08187..bafe295 100644 --- a/services/src/main/java/fr/ird/observe/services/service/actions/report/ReportBuilder.java +++ b/services/src/main/java/fr/ird/observe/services/service/actions/report/ReportBuilder.java @@ -409,9 +409,9 @@ public class ReportBuilder { try { type = Class.forName(typeStr); } catch (ClassNotFoundException eee) { - throw new IllegalArgumentException("Le type " + type + " n'est pas connu", eee); + throw new IllegalArgumentException("Le type " + typeStr + " n'est pas connu", eee); } - ReportVariable variable = new ReportVariable(id, type, request); + ReportVariable<?> variable = new ReportVariable<>(id, type, request); if (log.isInfoEnabled()) { log.info("Detects a variable : [" + reportName + ":" + variable.getName() + "] = " + variable.getRequest() + " (type = " + variable.getType().getName() + ")"); } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.