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