[exo-jcr-commits] exo-jcr SVN: r541 - jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/storage/jbosscache.

do-not-reply at jboss.org do-not-reply at jboss.org
Tue Nov 10 05:14:41 EST 2009


Author: tolusha
Date: 2009-11-10 05:14:41 -0500 (Tue, 10 Nov 2009)
New Revision: 541

Modified:
   jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/storage/jbosscache/LockCacheLoader.java
Log:
EXOJCR-205: fix test

Modified: jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/storage/jbosscache/LockCacheLoader.java
===================================================================
--- jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/storage/jbosscache/LockCacheLoader.java	2009-11-10 10:01:36 UTC (rev 540)
+++ jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/storage/jbosscache/LockCacheLoader.java	2009-11-10 10:14:41 UTC (rev 541)
@@ -107,11 +107,11 @@
                      {
                         performLock(lockChanges, sessionId);
                      }
-                     else if (lockChanges.get(0).getType() == ModificationType.REMOVE_KEY_VALUE
-                        && lockChanges.get(1).getType() == ModificationType.REMOVE_KEY_VALUE)
+                     else if (lockChanges.get(0).getType() == ModificationType.REMOVE_NODE
+                        && lockChanges.get(1).getType() == ModificationType.REMOVE_NODE)
                      {
                         PropertyData propertyData = (PropertyData)lockChanges.get(0).getOldValue();
-                        performUnLock(lockChanges, sessionId, propertyData.getParentIdentifier());
+                        performUnLock(lockChanges, propertyData.getParentIdentifier(), sessionId);
                      }
                      else
                      {
@@ -161,6 +161,8 @@
                case REMOVE_DATA :
                   break;
                case REMOVE_KEY_VALUE :
+                  break;
+               case REMOVE_NODE :
                   if (m.getKey().equals(JBossCacheStorage.ITEM_DATA))
                   {
                      PropertyData propertyData = (PropertyData)m.getValue();
@@ -172,8 +174,6 @@
                      }
                   }
                   break;
-               case REMOVE_NODE :
-                  break;
                case MOVE :
                   break;
                default :
@@ -183,34 +183,41 @@
          else if (m.getFqn().hasElement(JBossCacheStorage.NODES))
          {
             int nodesPos = getElementPosition(m.getFqn(), JBossCacheStorage.NODES);
-            if (m.getFqn().size() == nodesPos + 1)
+            if (m.getFqn().size() == nodesPos + 2)
             {
                // this is a node and node is locked
                String nodeIdentifier = (String)m.getFqn().get(nodesPos + 1);
-               if (lockManager.hasLockNode(nodeIdentifier))
+
+               switch (m.getType())
                {
-                  switch (m.getType())
-                  {
-                     case PUT_DATA_ERASE :
-                        break;
-                     case PUT_DATA :
+                  case PUT_DATA_ERASE :
+                     break;
+                  case PUT_DATA :
+                     if (lockManager.hasLockNode(nodeIdentifier))
+                     {
                         removedLock.remove(nodeIdentifier);
-                        break;
-                     case PUT_KEY_VALUE :
-                        break;
-                     case REMOVE_DATA :
-                        break;
-                     case REMOVE_KEY_VALUE :
-                        break;
-                     case REMOVE_NODE :
+                     }
+                     break;
+                  case PUT_KEY_VALUE :
+                     break;
+                  case REMOVE_DATA :
+                     break;
+                  case REMOVE_KEY_VALUE :
+                     break;
+                  case REMOVE_NODE :
+                     if (lockManager.hasLockNode(nodeIdentifier))
+                     {
                         removedLock.add(nodeIdentifier);
-                        break;
-                     case MOVE :
+                     }
+                     break;
+                  case MOVE :
+                     if (lockManager.hasLockNode(nodeIdentifier))
+                     {
                         removedLock.remove(nodeIdentifier);
-                        break;
-                     default :
-                        throw new CacheException("Unknown modification " + m.getType());
-                  }
+                     }
+                     break;
+                  default :
+                     throw new CacheException("Unknown modification " + m.getType());
                }
             }
          }
@@ -231,6 +238,7 @@
       {
          if (lockManager.hasPendingLocks(nodeIdentifier))
          {
+            log.info("Perform lock operation nodeIdentifier=" + nodeIdentifier);
             lockManager.internalLock(nodeIdentifier);
          }
          else
@@ -276,11 +284,12 @@
       }
    }
 
-   private void performUnLock(List<Modification> lockChanges, String sessionId, String nodeIdentifier)
+   private void performUnLock(List<Modification> lockChanges, String nodeIdentifier, String sessionId)
    {
       try
       {
-         lockManager.internalUnLock(sessionId, nodeIdentifier);
+         log.info("Perform lock operation nodeIdentifier=" + nodeIdentifier + " sessionId=" + sessionId);
+         lockManager.internalUnLock(nodeIdentifier, sessionId);
       }
       catch (LockException e)
       {



More information about the exo-jcr-commits mailing list