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/06/21 09:59:47 UTC
svn commit: r1352440 - in
/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core:
journal/AbstractJournal.java util/db/ConnectionHelper.java
Author: ckoell
Date: Thu Jun 21 07:59:47 2012
New Revision: 1352440
URL: http://svn.apache.org/viewvc?rev=1352440&view=rev
Log:
JCR-3353 A DeadLock can occur if an Exception is thrown while unlocking the Journal
Modified:
jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/AbstractJournal.java
jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/util/db/ConnectionHelper.java
Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/AbstractJournal.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/AbstractJournal.java?rev=1352440&r1=1352439&r2=1352440&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/AbstractJournal.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/AbstractJournal.java Thu Jun 21 07:59:47 2012
@@ -327,9 +327,13 @@ public abstract class AbstractJournal im
* successful
*/
public void unlock(boolean successful) {
- doUnlock(successful);
-
- rwLock.writeLock().release();
+ try {
+ doUnlock(successful);
+ } finally {
+ //Should not happen that a RuntimeException will be thrown in subCode, but it's safer
+ //to release the rwLock in finally block.
+ rwLock.writeLock().release();
+ }
}
/**
Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/util/db/ConnectionHelper.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/util/db/ConnectionHelper.java?rev=1352440&r1=1352439&r2=1352440&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/util/db/ConnectionHelper.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/util/db/ConnectionHelper.java Thu Jun 21 07:59:47 2012
@@ -253,7 +253,7 @@ public class ConnectionHelper {
*/
public final void endBatch(boolean commit) throws SQLException {
if (!inBatchMode()) {
- throw new IllegalStateException("not in batch mode");
+ throw new SQLException("not in batch mode");
}
try {
if (commit) {