Author: dereed
Date: 2012-08-02 17:22:33 -0400 (Thu, 02 Aug 2012)
New Revision: 8548
Modified:
core/support-branches/3.2.8.GA_JBCACHE-1620/src/main/java/org/jboss/cache/lock/PessimisticNodeBasedLockManager.java
Log:
[JBPAPP-9626] Backport JBCACHE-1620
Modified:
core/support-branches/3.2.8.GA_JBCACHE-1620/src/main/java/org/jboss/cache/lock/PessimisticNodeBasedLockManager.java
===================================================================
---
core/support-branches/3.2.8.GA_JBCACHE-1620/src/main/java/org/jboss/cache/lock/PessimisticNodeBasedLockManager.java 2012-08-02
21:20:23 UTC (rev 8547)
+++
core/support-branches/3.2.8.GA_JBCACHE-1620/src/main/java/org/jboss/cache/lock/PessimisticNodeBasedLockManager.java 2012-08-02
21:22:33 UTC (rev 8548)
@@ -146,14 +146,19 @@
// if the new node is to be marked as deleted, do not notify!
PessimisticUnversionedNode parentInternalNode =
(PessimisticUnversionedNode) parent.getDelegationTarget();
currentNode = parentInternalNode.addChildAndAcquireLock(childName,
!skipNotification, new LockAcquirer(ctx, WRITE, timeout, owner));
- skipLockAcquire = true;
- if (!created)
+
+ //JBCACHE-1620 make sure we created and locked the node, not a different
thread
+ if ( currentNode.getLock().isOwner(owner) )
{
- created = true;
- createdLevel = currentIndex;
+ skipLockAcquire = true;
+ if (!created)
+ {
+ created = true;
+ createdLevel = currentIndex;
+ }
+ if (trace) log.trace("Child node was null, so created child node
" + childName);
+ if (createdNodes != null) createdNodes.add(currentNode);
}
- if (trace) log.trace("Child node was null, so created child node
" + childName);
- if (createdNodes != null) createdNodes.add(currentNode);
}
else
{
Show replies by date