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 mr...@apache.org on 2016/01/26 15:56:23 UTC
svn commit: r1726812 - in /jackrabbit/oak/trunk/oak-core/src:
main/java/org/apache/jackrabbit/oak/plugins/document/mongo/
test/java/org/apache/jackrabbit/oak/plugins/document/
Author: mreutegg
Date: Tue Jan 26 14:56:23 2016
New Revision: 1726812
URL: http://svn.apache.org/viewvc?rev=1726812&view=rev
Log:
OAK-3929: RevisionGC does not invalidate document cache
Implement fix and enable tests
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/BasicDocumentStoreTest.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/RevisionGCTest.java
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java?rev=1726812&r1=1726811&r2=1726812&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java Tue Jan 26 14:56:23 2016
@@ -84,7 +84,10 @@ import com.mongodb.WriteConcern;
import com.mongodb.WriteResult;
import static com.google.common.base.Preconditions.checkArgument;
+import static com.google.common.base.Predicates.in;
+import static com.google.common.base.Predicates.not;
import static com.google.common.base.Predicates.notNull;
+import static com.google.common.collect.Iterables.filter;
import static com.google.common.collect.Maps.filterValues;
/**
@@ -295,9 +298,13 @@ public class MongoDocumentStore implemen
result.queryCount++;
int invalidated = nodesCache.invalidateOutdated(modCounts);
- result.cacheEntriesProcessedCount += modCounts.size();
+ for (String id : filter(ids, not(in(modCounts.keySet())))) {
+ nodesCache.invalidate(id);
+ invalidated++;
+ }
+ result.cacheEntriesProcessedCount += ids.size();
result.invalidationCount += invalidated;
- result.upToDateCount = modCounts.size() - invalidated;
+ result.upToDateCount += ids.size() - invalidated;
}
result.cacheSize = size;
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/BasicDocumentStoreTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/BasicDocumentStoreTest.java?rev=1726812&r1=1726811&r2=1726812&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/BasicDocumentStoreTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/BasicDocumentStoreTest.java Tue Jan 26 14:56:23 2016
@@ -35,7 +35,6 @@ import java.util.UUID;
import org.apache.jackrabbit.oak.plugins.document.UpdateOp.Condition;
import org.apache.jackrabbit.oak.plugins.document.UpdateOp.Key;
import org.apache.jackrabbit.oak.plugins.document.util.Utils;
-import org.junit.Ignore;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -901,7 +900,6 @@ public class BasicDocumentStoreTest exte
}
}
- @Ignore("OAK-3929")
@Test
public void removeInvalidatesCache() throws Exception {
String id = Utils.getIdFromPath("/foo");
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/RevisionGCTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/RevisionGCTest.java?rev=1726812&r1=1726811&r2=1726812&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/RevisionGCTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/RevisionGCTest.java Tue Jan 26 14:56:23 2016
@@ -24,7 +24,6 @@ import org.apache.jackrabbit.oak.spi.sta
import org.apache.jackrabbit.oak.stats.Clock;
import org.junit.After;
import org.junit.Before;
-import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
@@ -74,7 +73,6 @@ public class RevisionGCTest {
Revision.resetClockToDefault();
}
- @Ignore("OAK-3929")
@Test
public void recreateRemovedNodeAfterGC() throws Exception {
NodeBuilder b = newNodeBuilder();