You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by ck...@apache.org on 2012/08/03 07:26:30 UTC
svn commit: r1368796 -
/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/SharedItemStateManager.java
Author: ckoell
Date: Fri Aug 3 05:26:30 2012
New Revision: 1368796
URL: http://svn.apache.org/viewvc?rev=1368796&view=rev
Log:
JCR-3399 - Shared ISM does not release the internal Writelock if something unexpectedly is happening in externalUpdate
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=1368796&r1=1368795&r2=1368796&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 Fri Aug 3 05:26:30 2012
@@ -1521,18 +1521,18 @@ public class SharedItemStateManager
boolean holdingWriteLock = false;
ISMLocking.WriteLock wLock = null;
- try {
- wLock = acquireWriteLock(external);
- holdingWriteLock = true;
-
- doExternalUpdate(external);
- } catch (ItemStateException e) {
- String msg = "Unable to acquire write lock.";
- log.error(msg);
- }
-
ISMLocking.ReadLock rLock = null;
try {
+ try {
+ wLock = acquireWriteLock(external);
+ holdingWriteLock = true;
+
+ doExternalUpdate(external);
+ } catch (ItemStateException e) {
+ String msg = "Unable to acquire write lock.";
+ log.error(msg);
+ }
+
if (wLock != null) {
rLock = wLock.downgrade();
holdingWriteLock = false;