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 2019/02/04 14:49:41 UTC

svn commit: r1852922 - in /jackrabbit/oak/branches/1.10: ./ oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/

Author: mreutegg
Date: Mon Feb  4 14:49:40 2019
New Revision: 1852922

URL: http://svn.apache.org/viewvc?rev=1852922&view=rev
Log:
OAK-8017: Test failure: LastRevRecoveryRandomizedIT

Merged revision 1852920 from trunk

Modified:
    jackrabbit/oak/branches/1.10/   (props changed)
    jackrabbit/oak/branches/1.10/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentMKBuilderProvider.java
    jackrabbit/oak/branches/1.10/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreIT.java
    jackrabbit/oak/branches/1.10/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreTest.java
    jackrabbit/oak/branches/1.10/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/LastRevRecoveryRandomizedIT.java

Propchange: jackrabbit/oak/branches/1.10/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Feb  4 14:49:40 2019
@@ -1,3 +1,3 @@
 /jackrabbit/oak/branches/1.0:1665962
-/jackrabbit/oak/trunk:1851236,1851253,1851451,1852052,1852084,1852451,1852492-1852493
+/jackrabbit/oak/trunk:1851236,1851253,1851451,1852052,1852084,1852451,1852492-1852493,1852920
 /jackrabbit/trunk:1345480

Modified: jackrabbit/oak/branches/1.10/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentMKBuilderProvider.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.10/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentMKBuilderProvider.java?rev=1852922&r1=1852921&r2=1852922&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.10/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentMKBuilderProvider.java (original)
+++ jackrabbit/oak/branches/1.10/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentMKBuilderProvider.java Mon Feb  4 14:49:40 2019
@@ -16,11 +16,12 @@
  */
 package org.apache.jackrabbit.oak.plugins.document;
 
+import java.util.ArrayList;
 import java.util.List;
 
 import org.junit.rules.ExternalResource;
-
-import com.google.common.collect.Lists;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * The <tt>DocumentMkBuilderProvider</tt> is a JUnit <tt>@Rule</tt> which
@@ -48,41 +49,39 @@ import com.google.common.collect.Lists;
  */
 public class DocumentMKBuilderProvider extends ExternalResource {
 
-    private List<DisposingDocumentMKBuilder> builders = Lists.newArrayList();
+    private static final Logger LOG = LoggerFactory.getLogger(DocumentMKBuilderProvider.class);
+
+    private List<DocumentNodeStore> nodeStores = new ArrayList<>();
     
     @Override
     protected void after() {
-        for (DisposingDocumentMKBuilder builder : builders) {
-            builder.dispose();
+        for (DocumentNodeStore ns : nodeStores) {
+            try {
+                ns.dispose();
+            } catch (Exception e) {
+                LOG.warn("Exception while disposing DocumentNodeStore", e);
+            }
         }
     }
-    
+
     public DocumentMK.Builder newBuilder() {
-        DisposingDocumentMKBuilder builder = new DisposingDocumentMKBuilder();
-        builders.add(builder);
-        return builder;
+        return new DisposingDocumentMKBuilder();
     }
     
-    private static class DisposingDocumentMKBuilder extends DocumentMK.Builder {
-        
-        private boolean initialised = false;
+    private class DisposingDocumentMKBuilder extends DocumentMK.Builder {
         
         @Override
         public DocumentNodeStore getNodeStore() {
-            boolean success = false;
-            try {
-                DocumentNodeStore ns = super.getNodeStore();
-                success = true;
-                return ns;
-            } finally {
-                initialised = success;
-            }
+            DocumentNodeStore ns = super.getNodeStore();
+            nodeStores.add(ns);
+            return ns;
         }
 
-        public void dispose() {
-            if ( initialised ) {
-                getNodeStore().dispose();
-            }
+        @Override
+        public DocumentNodeStore build() {
+            DocumentNodeStore ns = super.build();
+            nodeStores.add(ns);
+            return ns;
         }
-    }        
+    }
 }
\ No newline at end of file

Modified: jackrabbit/oak/branches/1.10/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreIT.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.10/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreIT.java?rev=1852922&r1=1852921&r2=1852922&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.10/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreIT.java (original)
+++ jackrabbit/oak/branches/1.10/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreIT.java Mon Feb  4 14:49:40 2019
@@ -26,6 +26,7 @@ import java.util.concurrent.atomic.Atomi
 
 import com.google.common.util.concurrent.Monitor;
 
+import org.apache.jackrabbit.oak.commons.concurrent.ExecutorCloser;
 import org.apache.jackrabbit.oak.json.JsopDiff;
 import org.apache.jackrabbit.oak.plugins.document.util.TimingDocumentStoreWrapper;
 import org.apache.jackrabbit.oak.plugins.document.util.Utils;
@@ -77,12 +78,7 @@ public class DocumentNodeStoreIT extends
         Clock clock = new Clock.Virtual();
         clock.waitUntil(System.currentTimeMillis());
         Revision.setClock(clock);
-        DocumentStore docStore = new TimingDocumentStoreWrapper(ds) {
-            @Override
-            public void dispose() {
-                // do not dispose yet
-            }
-        };
+        DocumentStore docStore = new NonDisposingDocumentStore(ds);
         // use a builder with a no-op diff cache to simulate a
         // cache miss when the diff is made later in the test
         DocumentNodeStore ns1 = new TestBuilder()
@@ -147,8 +143,9 @@ public class DocumentNodeStoreIT extends
     public void blockingBlob() throws Exception {
         ExecutorService updateExecutor = newSingleThreadExecutor();
         ExecutorService commitExecutor = newSingleThreadExecutor();
+        DocumentStore docStore = new NonDisposingDocumentStore(ds);
         DocumentNodeStore store = builderProvider.newBuilder()
-                .setDocumentStore(ds).build();
+                .setDocumentStore(docStore).build();
         removeMeClusterNodes.add("" + store.getClusterId());
         try {
 
@@ -185,8 +182,9 @@ public class DocumentNodeStoreIT extends
                 blockingBlob.unblock();
             }
         } finally {
-            commitExecutor.shutdown();
-            updateExecutor.shutdown();
+            new ExecutorCloser(commitExecutor).close();
+            new ExecutorCloser(updateExecutor).close();
+            store.dispose();
         }
     }
 
@@ -244,6 +242,19 @@ public class DocumentNodeStoreIT extends
         }
     }
 
+    private static class NonDisposingDocumentStore
+            extends TimingDocumentStoreWrapper {
+
+        NonDisposingDocumentStore(DocumentStore base) {
+            super(base);
+        }
+
+        @Override
+        public void dispose() {
+            // do not dispose yet
+        }
+    }
+
     private class TestBuilder extends DocumentNodeStoreBuilder<TestBuilder> {
 
         @Override

Modified: jackrabbit/oak/branches/1.10/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.10/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreTest.java?rev=1852922&r1=1852921&r2=1852922&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.10/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreTest.java (original)
+++ jackrabbit/oak/branches/1.10/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreTest.java Mon Feb  4 14:49:40 2019
@@ -2606,6 +2606,7 @@ public class DocumentNodeStoreTest {
         Clock clock = new Clock.Virtual();
         clock.waitUntil(System.currentTimeMillis());
         Revision.setClock(clock);
+        ClusterNodeInfo.setClock(clock);
         DocumentNodeStore ns = builderProvider.newBuilder()
                 .clock(clock)
                 .setAsyncDelay(0).getNodeStore();

Modified: jackrabbit/oak/branches/1.10/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/LastRevRecoveryRandomizedIT.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.10/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/LastRevRecoveryRandomizedIT.java?rev=1852922&r1=1852921&r2=1852922&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.10/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/LastRevRecoveryRandomizedIT.java (original)
+++ jackrabbit/oak/branches/1.10/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/LastRevRecoveryRandomizedIT.java Mon Feb  4 14:49:40 2019
@@ -136,6 +136,7 @@ public class LastRevRecoveryRandomizedIT
                 if (!success) {
                     int num = 0;
                     for (String line : ops) {
+                        System.out.println("Seed: " + SEED);
                         System.out.println(num++ + ": " + line);
                     }
                 }