You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by sc...@apache.org on 2012/11/05 14:56:41 UTC

svn commit: r1405792 - /jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/SharedItemStateManager.java

Author: schans
Date: Mon Nov  5 13:56:40 2012
New Revision: 1405792

URL: http://svn.apache.org/viewvc?rev=1405792&view=rev
Log:
JCR-3455: Events should be dispatched after the global cluster lock is freed in the SharedItemStateManager

Modified:
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/SharedItemStateManager.java

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/SharedItemStateManager.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/SharedItemStateManager.java?rev=1405792&r1=1405791&r2=1405792&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/SharedItemStateManager.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/SharedItemStateManager.java Mon Nov  5 13:56:40 2012
@@ -826,8 +826,6 @@ public class SharedItemStateManager
                     }
                 }
 
-                /* dispatch the events */
-                events.dispatch();
             } finally {
                 // Let listener know about finished operation. This needs
                 // to happen in the finally block so that the cluster lock
@@ -844,8 +842,16 @@ public class SharedItemStateManager
                     writeLock.release();
                     writeLock = null;
                 } else if (readLock != null) {
-                    readLock.release();
+                    try {
+                        if (succeeded) {
+                            /* dispatch the events */
+                            events.dispatch();
+                        }
+                    } finally {
+                        readLock.release();
+                    }
                 }
+
             }
         }