diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServer.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServer.java index 86999c7d913d3c159b5b30f7a8f4cd88257870e1..8327e0eae4d9e04b342b4629629d83171afd05f4 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServer.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServer.java @@ -1292,16 +1292,15 @@ public final class CommonServer extends AbstractCommonServer<ICommonServerForInt for (int i = 0; i < fin.size(); i++) { - if (i < fin.size() && i < ini.size()) // Is Check Possible + newETNewPTAssigments.getAssigments().get(i).getAssignment().setModificationDate(null); + if (i < ini.size()) // Is Check Possible { if (ini.get(i).equals(fin.get(i))) // Do nothing. { - // Positions are equal but maibe the data have changed. - if (ini.get(i).getOrdinal() != fin.get(i).getOrdinal()) - { - updatePropertyTypeAssignment(sessionToken, newETNewPTAssigments.getAssigments().get(i).getAssignment()); - } - } else if (false == ini.get(i).equals(fin.get(i))) // Something needs to be done. + // Positions are equal but maybe the data have changed. + updatePropertyTypeAssignment(sessionToken, newETNewPTAssigments.getAssigments().get(i).getAssignment()); + } else + // Something needs to be done. { if (false == fin.contains(ini.get(i))) // Delete { @@ -1331,7 +1330,7 @@ public final class CommonServer extends AbstractCommonServer<ICommonServerForInt i--; } - } else if (i >= ini.size()) + } else { if (false == newETNewPTAssigments.getAssigments().get(i).isExistingPropertyType()) { @@ -1342,15 +1341,17 @@ public final class CommonServer extends AbstractCommonServer<ICommonServerForInt ini.add(i, fin.get(i)); i--; } + } for (int i = 0; i < ini.size(); i++) { - if (i < fin.size() && i < ini.size() // Is Check Possible - && ini.get(i).equals(fin.get(i))) // Do nothing. + newETNewPTAssigments.getAssigments().get(i).getAssignment().setModificationDate(null); + + if (i < fin.size() && ini.get(i).equals(fin.get(i))) // Do nothing. { // Positions are equal - } else if (i >= fin.size()) + } else { unassignPropertyType(sessionToken, newETNewPTAssigments.getEntity().getEntityKind(), @@ -1359,6 +1360,7 @@ public final class CommonServer extends AbstractCommonServer<ICommonServerForInt ini.remove(i); i--; } + } return results.toString(); diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/EntityTypePropertyTypeBO.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/EntityTypePropertyTypeBO.java index e706283d2d2597a2a10f04cdf9f376d77add166c..9e53dc133c4c45c731aec9d1905df819a8087aaf 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/EntityTypePropertyTypeBO.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/EntityTypePropertyTypeBO.java @@ -217,7 +217,8 @@ public class EntityTypePropertyTypeBO extends AbstractBusinessObject implements @Override public void updateLoadedAssignment(NewETPTAssignment assignmentUpdates) { - if (assignment.getModificationDate().equals(assignmentUpdates.getModificationDate()) == false) + if (assignment.getModificationDate().equals(assignmentUpdates.getModificationDate()) == false && + (assignmentUpdates.getModificationDate() == null) == false) { throwModifiedEntityException("Property type assignment"); } @@ -322,8 +323,7 @@ public class EntityTypePropertyTypeBO extends AbstractBusinessObject implements } /** - * shift specified entity type etpts by specified increment starting from etpt with specified - * ordinal + * shift specified entity type etpts by specified increment starting from etpt with specified ordinal * * @param entityType */