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 ch...@apache.org on 2015/09/14 09:04:26 UTC
svn commit: r1702860 -
/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/VersionGCDeletionTest.java
Author: chetanm
Date: Mon Sep 14 07:04:26 2015
New Revision: 1702860
URL: http://svn.apache.org/r1702860
Log:
OAK-3395 - RevisionGC fails for JCR paths having line feed characters
Adding ignored testcase for the same
Modified:
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/VersionGCDeletionTest.java
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/VersionGCDeletionTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/VersionGCDeletionTest.java?rev=1702860&r1=1702859&r2=1702860&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/VersionGCDeletionTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/VersionGCDeletionTest.java Mon Sep 14 07:04:26 2015
@@ -43,6 +43,7 @@ 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 static java.util.concurrent.Executors.newSingleThreadExecutor;
@@ -164,6 +165,47 @@ public class VersionGCDeletionTest {
}
}
+ @Ignore("OAK-3395")
+ @Test
+ public void gcWithPathsHavingNewLine() throws Exception{
+ int noOfDocsToDelete = 200;
+ DocumentStore ts = new MemoryDocumentStore();
+ store = new DocumentMK.Builder()
+ .clock(clock)
+ .setDocumentStore(new MemoryDocumentStore())
+ .setAsyncDelay(0)
+ .getNodeStore();
+
+ //Baseline the clock
+ clock.waitUntil(Revision.getCurrentTimestamp());
+
+ NodeBuilder b1 = store.getRoot().builder();
+ NodeBuilder xb = b1.child("x");
+ for (int i = 0; i < noOfDocsToDelete - 1; i++){
+ xb.child("a"+i).child("b"+i);
+ }
+ xb.child("a-1").child("b\r");
+ store.merge(b1, EmptyHook.INSTANCE, CommitInfo.EMPTY);
+
+ long maxAge = 1; //hours
+ long delta = TimeUnit.MINUTES.toMillis(10);
+
+ //Remove x/y
+ NodeBuilder b2 = store.getRoot().builder();
+ b2.child("x").remove();
+ store.merge(b2, EmptyHook.INSTANCE, CommitInfo.EMPTY);
+
+ store.runBackgroundOperations();
+
+ //3. Check that deleted doc does get collected post maxAge
+ clock.waitUntil(clock.getTime() + HOURS.toMillis(maxAge*2) + delta);
+ VersionGarbageCollector gc = store.getVersionGarbageCollector();
+ gc.setOverflowToDiskThreshold(100);
+
+ VersionGCStats stats = gc.gc(maxAge * 2, HOURS);
+ assertEquals(noOfDocsToDelete * 2 + 1, stats.deletedDocGCCount);
+ }
+
// OAK-2420
@Test
public void queryWhileDocsAreRemoved() throws Exception {