Author: reschke
Date: Thu Mar 15 16:00:29 2018
New Revision: 1826833
URL: http://svn.apache.org/viewvc?rev=1826833&view=rev
Log:
OAK-7342: RDBDocumentStore: missing rollback after delete failures
Modified:
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java
Modified:
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java?rev=1826833&r1=1826832&r2=1826833&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java
(original)
+++
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java
Thu Mar 15 16:00:29 2018
@@ -1887,6 +1887,7 @@ public class RDBDocumentStore implements
db.delete(connection, tmd, Collections.singletonList(id));
connection.commit();
} catch (Exception ex) {
+ this.ch.rollbackConnection(connection);
throw handleException("removing " + id, ex, collection, id);
} finally {
this.ch.closeConnection(connection);
@@ -1905,6 +1906,7 @@ public class RDBDocumentStore implements
numDeleted += db.delete(connection, tmd, sublist);
connection.commit();
} catch (Exception ex) {
+ this.ch.rollbackConnection(connection);
throw handleException("removing " + ids, ex, collection, ids);
} finally {
this.ch.closeConnection(connection);
@@ -1932,6 +1934,7 @@ public class RDBDocumentStore implements
numDeleted += num;
connection.commit();
} catch (Exception ex) {
+ this.ch.rollbackConnection(connection);
Set<String> ids = subMap.keySet();
throw handleException("deleting " + ids, ex, collection,
ids);
} finally {
@@ -1954,6 +1957,7 @@ public class RDBDocumentStore implements
numDeleted = db.deleteWithCondition(connection, tmd, conditions);
connection.commit();
} catch (Exception ex) {
+ this.ch.rollbackConnection(connection);
throw asDocumentStoreException(ex, "deleting " + collection + ": "
+ conditions);
} finally {
this.ch.closeConnection(connection);