[exo-jcr-commits] exo-jcr SVN: r855 - jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent.

do-not-reply at jboss.org do-not-reply at jboss.org
Wed Nov 25 05:59:30 EST 2009


Author: nzamosenchuk
Date: 2009-11-25 05:59:29 -0500 (Wed, 25 Nov 2009)
New Revision: 855

Modified:
   jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/JBossCacheWorkspaceDataManager.java
Log:
EXOJCR-243: delete lock data on node deletion

Modified: jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/JBossCacheWorkspaceDataManager.java
===================================================================
--- jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/JBossCacheWorkspaceDataManager.java	2009-11-25 10:57:20 UTC (rev 854)
+++ jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/JBossCacheWorkspaceDataManager.java	2009-11-25 10:59:29 UTC (rev 855)
@@ -76,6 +76,7 @@
 
       WorkspaceStorageConnection thisConnection = null;
       WorkspaceStorageConnection systemConnection = null;
+      List<String> removeLocksList = new ArrayList<String>();
 
       // prepare changes log list
       List<PlainChangesLog> chengesLogList = new ArrayList<PlainChangesLog>();
@@ -192,18 +193,22 @@
                if (itemState.isAdded())
                {
                   doAdd(data, conn, addedNodes);
+                  removeLocksList.remove(data.getIdentifier());
                }
                else if (itemState.isUpdated())
                {
                   doUpdate(data, conn);
+                  removeLocksList.remove(data.getIdentifier());
                }
                else if (itemState.isDeleted())
                {
                   doDelete(data, conn);
+                  removeLocksList.add(data.getIdentifier());
                }
                else if (itemState.isRenamed())
                {
                   doRename(data, conn, addedNodes);
+                  removeLocksList.remove(data.getIdentifier());
                }
                else if (itemState.isMixinChanged())
                {
@@ -215,6 +220,10 @@
                      + "ms, " + data.getQPath().getAsString());
             }
          }
+         for (String identifier : removeLocksList)
+         {
+            thisConnection.removeLockData(identifier);
+         }
          if (thisConnection != null)
             thisConnection.commit();
          if (systemConnection != null && !systemConnection.equals(thisConnection))



More information about the exo-jcr-commits mailing list