[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