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; }