You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by ju...@apache.org on 2008/03/14 15:18:44 UTC

svn commit: r637106 - /jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/lock/LockManagerImpl.java

Author: jukka
Date: Fri Mar 14 07:18:38 2008
New Revision: 637106

URL: http://svn.apache.org/viewvc?rev=637106&view=rev
Log:
JCR-1461: Deadlock on concurrent commit/checkin operations
    - Applied Marcel's patch

Modified:
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/lock/LockManagerImpl.java

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/lock/LockManagerImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/lock/LockManagerImpl.java?rev=637106&r1=637105&r2=637106&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/lock/LockManagerImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/lock/LockManagerImpl.java Fri Mar 14 07:18:38 2008
@@ -380,11 +380,15 @@
      * @throws RepositoryException if an error occurs
      */
     public AbstractLockInfo getLockInfo(NodeId id) throws RepositoryException {
-        acquire();
-
+        Path path;
         try {
-            Path path = getPath(id);
+            path = getPath(id);
+        } catch (ItemNotFoundException e) {
+            return null;
+        }
 
+        acquire();
+        try {
             PathMap.Element element = lockMap.map(path, false);
             AbstractLockInfo info = (AbstractLockInfo) element.get();
             if (info != null) {
@@ -392,8 +396,6 @@
                     return info;
                 }
             }
-            return null;
-        } catch (ItemNotFoundException e) {
             return null;
         } finally {
             release();