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);


Reply via email to