You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by re...@apache.org on 2017/10/09 13:59:40 UTC

svn commit: r1811575 - /jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java

Author: reschke
Date: Mon Oct  9 13:59:40 2017
New Revision: 1811575

URL: http://svn.apache.org/viewvc?rev=1811575&view=rev
Log:
OAK-6782: RDBDocumentStore: inconsistent handling of cache invalidation on remove()

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=1811575&r1=1811574&r2=1811575&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 Mon Oct  9 13:59:40 2017
@@ -279,26 +279,33 @@ public class RDBDocumentStore implements
 
     @Override
     public <T extends Document> void remove(Collection<T> collection, String id) {
-        delete(collection, id);
-        invalidateCache(collection, id, true);
+        try {
+            delete(collection, id);
+        } finally {
+            invalidateCache(collection, id, true);
+        }
     }
 
     @Override
     public <T extends Document> void remove(Collection<T> collection, List<String> ids) {
-        for (String id : ids) {
-            invalidateCache(collection, id, true);
+        try {
+            delete(collection, ids);
+        } finally {
+            for (String id : ids) {
+                invalidateCache(collection, id, true);
+            }
         }
-        delete(collection, ids);
     }
 
     @Override
-    public <T extends Document> int remove(Collection<T> collection,
-                                            Map<String, Map<Key, Condition>> toRemove) {
-        int num = delete(collection, toRemove);
-        for (String id : toRemove.keySet()) {
-            invalidateCache(collection, id, true);
+    public <T extends Document> int remove(Collection<T> collection, Map<String, Map<Key, Condition>> toRemove) {
+        try {
+            return delete(collection, toRemove);
+        } finally {
+            for (String id : toRemove.keySet()) {
+                invalidateCache(collection, id, true);
+            }
         }
-        return num;
     }
 
     @Override