From 1714e31e29f5d76fff18c017b28c12647fbde2cb Mon Sep 17 00:00:00 2001
From: juanf <juanf>
Date: Wed, 15 May 2013 14:13:52 +0000
Subject: [PATCH] SP-625 BIS-398: Editing Functionality Fixes. Ongoing work.

SVN: 29148
---
 .../openbis/generic/server/CommonServer.java  | 24 ++++++++++---------
 .../business/bo/EntityTypePropertyTypeBO.java |  6 ++---
 2 files changed, 16 insertions(+), 14 deletions(-)

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 86999c7d913..8327e0eae4d 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 e706283d2d2..9e53dc133c4 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
      */
-- 
GitLab