Author: tomekr
Date: Thu Feb 16 10:32:36 2017
New Revision: 1783192

URL: http://svn.apache.org/viewvc?rev=1783192&view=rev
Log:
OAK-5651: java.lang.IllegalStateException logged when migrating Segment to 
Document

Modified:
    
jackrabbit/oak/branches/1.6/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/bundlor/BundlingConfigHandler.java
    
jackrabbit/oak/branches/1.6/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/node/JdbcFactory.java
    
jackrabbit/oak/branches/1.6/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/node/MongoFactory.java

Modified: 
jackrabbit/oak/branches/1.6/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/bundlor/BundlingConfigHandler.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.6/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/bundlor/BundlingConfigHandler.java?rev=1783192&r1=1783191&r2=1783192&view=diff
==============================================================================
--- 
jackrabbit/oak/branches/1.6/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/bundlor/BundlingConfigHandler.java
 (original)
+++ 
jackrabbit/oak/branches/1.6/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/bundlor/BundlingConfigHandler.java
 Thu Feb 16 10:32:36 2017
@@ -85,11 +85,8 @@ public class BundlingConfigHandler imple
     }
 
     @Override
-    public void close() throws IOException{
-        if (backgroundObserver != null){
-            observerRegistration.close();
-            backgroundObserver.close();
-        }
+    public void close() throws IOException {
+        unregisterObserver();
     }
 
     public BackgroundObserverMBean getMBean(){
@@ -115,6 +112,16 @@ public class BundlingConfigHandler imple
         observerRegistration = observable.addObserver(backgroundObserver);
     }
 
+    public void unregisterObserver() throws IOException {
+        if (backgroundObserver != null) {
+            observerRegistration.close();
+            backgroundObserver.close();
+
+            observerRegistration = null;
+            backgroundObserver = null;
+        }
+    }
+
 }
 
 

Modified: 
jackrabbit/oak/branches/1.6/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/node/JdbcFactory.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.6/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/node/JdbcFactory.java?rev=1783192&r1=1783191&r2=1783192&view=diff
==============================================================================
--- 
jackrabbit/oak/branches/1.6/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/node/JdbcFactory.java
 (original)
+++ 
jackrabbit/oak/branches/1.6/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/node/JdbcFactory.java
 Thu Feb 16 10:32:36 2017
@@ -57,7 +57,7 @@ public class JdbcFactory implements Node
     }
 
     @Override
-    public NodeStore create(BlobStore blobStore, Closer closer) {
+    public NodeStore create(BlobStore blobStore, Closer closer) throws 
IOException {
         DocumentMK.Builder builder = MongoFactory.getBuilder(cacheSize);
         if (blobStore != null) {
             builder.setBlobStore(blobStore);
@@ -69,6 +69,10 @@ public class JdbcFactory implements Node
         log.info("Initialized DocumentNodeStore on RDB with Cache size : {} 
MB, Fast migration : {}", cacheSize,
                 builder.isDisableBranches());
         DocumentNodeStore documentNodeStore = builder.getNodeStore();
+
+        // TODO probably we should disable all observers, see OAK-5651
+        documentNodeStore.getBundlingConfigHandler().unregisterObserver();
+
         closer.register(MongoFactory.asCloseable(documentNodeStore));
         return documentNodeStore;
     }

Modified: 
jackrabbit/oak/branches/1.6/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/node/MongoFactory.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.6/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/node/MongoFactory.java?rev=1783192&r1=1783191&r2=1783192&view=diff
==============================================================================
--- 
jackrabbit/oak/branches/1.6/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/node/MongoFactory.java
 (original)
+++ 
jackrabbit/oak/branches/1.6/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/node/MongoFactory.java
 Thu Feb 16 10:32:36 2017
@@ -48,7 +48,7 @@ public class MongoFactory implements Nod
     }
 
     @Override
-    public NodeStore create(BlobStore blobStore, Closer closer) throws 
UnknownHostException {
+    public NodeStore create(BlobStore blobStore, Closer closer) throws 
IOException {
         DocumentMK.Builder builder = getBuilder(cacheSize);
         builder.setMongoDB(getDB(closer));
         if (blobStore != null) {
@@ -58,6 +58,10 @@ public class MongoFactory implements Nod
             builder.setReadOnlyMode();
         }
         DocumentNodeStore documentNodeStore = builder.getNodeStore();
+
+        // TODO probably we should disable all observers, see OAK-5651
+        documentNodeStore.getBundlingConfigHandler().unregisterObserver();
+
         closer.register(asCloseable(documentNodeStore));
         return documentNodeStore;
     }


Reply via email to