-
Bug
-
Resolution: Done
-
Major
-
None
-
2.2.1.GA
-
None
Running the following code throws a LockException instead of deleting the node. The following code was tested using the JPA and InMemory connector.
CODE:
Session session1 = RepositoryReferenceFactory.getRepository("test-jpa").login();
Session session2 = RepositoryReferenceFactory.getRepository("test-jpa").login();
LockManager lm1 = session1.getWorkspace().getLockManager();
// Create node structure
Node root1 = session1.getRootNode();
Node node1 = root1.addNode("node1", "nt:folder");
Node node2 = root1.addNode("node1/node2", "nt:folder");
Node node3 = root1.addNode("node1/node2/node3", "nt:folder");
session1.save();
// Create an open-scoped shallow lock on node2
node2.addMixin("mix:lockable");
session1.save();
lm1.lock("/node1/node2", false, false, 10000, "Locked");
session1.save();
// Attempt to a child node of node2
session2.refresh(true);
Node toDelete = session2.getNode("/node1/node2/node3");
toDelete.remove();
session2.save();
Exception Stack:
javax.jcr.lock.LockException: The node at location '</{}node1/{}node2/{}node3 && [
{http://www.modeshape.org/1.0}uuid = 9c1a99f0-8710-4c61-b058-729835b88f8e]>' is not locked
org.modeshape.jcr.JcrLockManager.getLock(JcrLockManager.java:88)
at org.modeshape.jcr.JcrNode.doRemove(JcrNode.java:111)
at org.modeshape.jcr.AbstractJcrNode.removeShare(AbstractJcrNode.java:2386)
at org.modeshape.jcr.AbstractJcrNode.remove(AbstractJcrNode.java:2431)
at org.jboss.soa.modeshape.qa.tests.GenericConnectorLockingTest.testLockingBug1(GenericConnectorLockingTest.java:90)
25 lines not shown
- is related to
-
MODE-1018 Lock holding nodes can be deleted.
- Closed