Author: tolusha
Date: 2009-11-11 08:37:09 -0500 (Wed, 11 Nov 2009)
New Revision: 561
Modified:
jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/LockManagerImpl.java
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/test/java/org/exoplatform/services/jcr/impl/storage/jbosscache/AbstractCacheLoaderTest.java
jcr/branches/1.12.0-JBC/component/core/src/test/java/org/exoplatform/services/jcr/impl/storage/jbosscache/LockCacheLoaderTest.java
jcr/branches/1.12.0-JBC/component/core/src/test/java/org/exoplatform/services/jcr/impl/storage/jbosscache/TesterLockManagerImpl.java
Log:
EXOJCR-205: new tests added
Modified:
jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/LockManagerImpl.java
===================================================================
---
jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/LockManagerImpl.java 2009-11-11
13:02:31 UTC (rev 560)
+++
jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/LockManagerImpl.java 2009-11-11
13:37:09 UTC (rev 561)
@@ -109,8 +109,10 @@
/**
* Map NodeIdentifier -- lockData
+ *
+ * TODO: changed from private to protected
*/
- private final Map<String, LockData> locks;
+ protected final Map<String, LockData> locks;
/**
* Data manager.
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-11
13:02:31 UTC (rev 560)
+++
jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/storage/jbosscache/LockCacheLoader.java 2009-11-11
13:37:09 UTC (rev 561)
@@ -128,13 +128,13 @@
log.error("Incorrect changes log size for lock or unlock
operation");
}
- // changesLog end
for (String identifier : removedLock)
{
- lockManager.internalUnLock(sessionId, identifier);
+ lockManager.internalUnLock(identifier, sessionId);
}
lockChanges = new ArrayList<Modification>();
+ removedLock = new HashSet<String>();
sessionId = null;
break;
case REMOVE_KEY_VALUE :
@@ -192,10 +192,10 @@
else if (m.getFqn().hasElement(JBossCacheStorage.NODES))
{
int nodesPos = getElementPosition(m.getFqn(), JBossCacheStorage.NODES);
+ // this is a node and node is locked
+ String nodeIdentifier = (String)m.getFqn().get(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())
Modified:
jcr/branches/1.12.0-JBC/component/core/src/test/java/org/exoplatform/services/jcr/impl/storage/jbosscache/AbstractCacheLoaderTest.java
===================================================================
---
jcr/branches/1.12.0-JBC/component/core/src/test/java/org/exoplatform/services/jcr/impl/storage/jbosscache/AbstractCacheLoaderTest.java 2009-11-11
13:02:31 UTC (rev 560)
+++
jcr/branches/1.12.0-JBC/component/core/src/test/java/org/exoplatform/services/jcr/impl/storage/jbosscache/AbstractCacheLoaderTest.java 2009-11-11
13:37:09 UTC (rev 561)
@@ -208,8 +208,8 @@
list.add(new Modification(ModificationType.PUT_KEY_VALUE,
Fqn.fromString("/" + JBossCacheStorage.SESSION),
JBossCacheStorage.SESSION_ID, sessionId));
// add UserID by the key USER_ID
- list.add(new Modification(ModificationType.PUT_KEY_VALUE,
Fqn.fromString("/" + JBossCacheStorage.SESSION),
- JBossCacheStorage.USER_ID, userId));
+ // list.add(new Modification(ModificationType.PUT_KEY_VALUE,
Fqn.fromString("/" + JBossCacheStorage.SESSION),
+ // JBossCacheStorage.USER_ID, userId));
// return
return list;
}
Modified:
jcr/branches/1.12.0-JBC/component/core/src/test/java/org/exoplatform/services/jcr/impl/storage/jbosscache/LockCacheLoaderTest.java
===================================================================
---
jcr/branches/1.12.0-JBC/component/core/src/test/java/org/exoplatform/services/jcr/impl/storage/jbosscache/LockCacheLoaderTest.java 2009-11-11
13:02:31 UTC (rev 560)
+++
jcr/branches/1.12.0-JBC/component/core/src/test/java/org/exoplatform/services/jcr/impl/storage/jbosscache/LockCacheLoaderTest.java 2009-11-11
13:37:09 UTC (rev 561)
@@ -27,6 +27,7 @@
import org.exoplatform.services.jcr.impl.core.lock.LockData;
import org.exoplatform.services.jcr.impl.core.lock.LockManagerImpl;
import org.exoplatform.services.jcr.impl.core.value.ValueFactoryImpl;
+import org.exoplatform.services.jcr.impl.dataflow.TransientNodeData;
import org.exoplatform.services.jcr.impl.dataflow.TransientPropertyData;
import org.exoplatform.services.jcr.impl.dataflow.TransientValueData;
import org.exoplatform.services.jcr.impl.storage.jdbc.JDBCWorkspaceDataContainer;
@@ -140,4 +141,44 @@
assertEquals(nodeIdentifier, lockManager.getNodeIdentifier());
assertEquals(sessionId, lockManager.getSessionid());
}
+
+ public void testAddNodeLock() throws Exception
+ {
+ List<Modification> modifications = new ArrayList<Modification>();
+ String nodeIdentifier = "node1";
+ String sessionId = "session1";
+
+ TransientNodeData node =
+ new TransientNodeData(testRoot, nodeIdentifier, 0, null, null, 0,
Constants.ROOT_UUID, null);
+
+ lockManager.addLock(nodeIdentifier, new LockData(nodeIdentifier, "token",
false, false, "__system", -1));
+
+ modifications.addAll(setSession(sessionId, "userId"));
+ modifications.addAll(addNode(node));
+ modifications.addAll(removeSession());
+ lockCacheLoader.put(modifications);
+
+ assertNull(lockManager.getNodeIdentifier());
+ assertNull(lockManager.getSessionid());
+ }
+
+ public void testRemoveNodeLock() throws Exception
+ {
+ List<Modification> modifications = new ArrayList<Modification>();
+ String nodeIdentifier = "node1";
+ String sessionId = "session1";
+
+ TransientNodeData node =
+ new TransientNodeData(testRoot, nodeIdentifier, 0, null, null, 0,
Constants.ROOT_UUID, null);
+
+ lockManager.addLock(nodeIdentifier, new LockData(nodeIdentifier, "token",
false, false, "__system", -1));
+
+ modifications.addAll(setSession(sessionId, "userId"));
+ modifications.addAll(removeNode(node));
+ modifications.addAll(removeSession());
+ lockCacheLoader.put(modifications);
+
+ assertEquals(nodeIdentifier, lockManager.getNodeIdentifier());
+ assertEquals(sessionId, lockManager.getSessionid());
+ }
}
Modified:
jcr/branches/1.12.0-JBC/component/core/src/test/java/org/exoplatform/services/jcr/impl/storage/jbosscache/TesterLockManagerImpl.java
===================================================================
---
jcr/branches/1.12.0-JBC/component/core/src/test/java/org/exoplatform/services/jcr/impl/storage/jbosscache/TesterLockManagerImpl.java 2009-11-11
13:02:31 UTC (rev 560)
+++
jcr/branches/1.12.0-JBC/component/core/src/test/java/org/exoplatform/services/jcr/impl/storage/jbosscache/TesterLockManagerImpl.java 2009-11-11
13:37:09 UTC (rev 561)
@@ -86,4 +86,8 @@
pendingLocks.put(nodeIdentifier, lData);
}
+ public void addLock(String nodeIdentifier, LockData lData)
+ {
+ locks.put(nodeIdentifier, lData);
+ }
}