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 re...@apache.org on 2015/09/11 12:52:41 UTC
svn commit: r1702423 - in /jackrabbit/oak/trunk:
oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreService.java
oak-pojosr/src/test/groovy/org/apache/jackrabbit/oak/run/osgi/DocumentNodeStoreConfigTest.groovy
Author: reschke
Date: Fri Sep 11 10:52:41 2015
New Revision: 1702423
URL: http://svn.apache.org/r1702423
Log:
OAK-3383: DocumentNodeStoreService: make unregistration more robust
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreService.java
jackrabbit/oak/trunk/oak-pojosr/src/test/groovy/org/apache/jackrabbit/oak/run/osgi/DocumentNodeStoreConfigTest.groovy
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreService.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreService.java?rev=1702423&r1=1702422&r2=1702423&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreService.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreService.java Fri Sep 11 10:52:41 2015
@@ -513,13 +513,16 @@ public class DocumentNodeStoreService {
for (Registration r : registrations) {
r.unregister();
}
+ registrations.clear();
if (reg != null) {
reg.unregister();
+ reg = null;
}
if (mk != null) {
mk.dispose();
+ mk = null;
}
if (executor != null) {
Modified: jackrabbit/oak/trunk/oak-pojosr/src/test/groovy/org/apache/jackrabbit/oak/run/osgi/DocumentNodeStoreConfigTest.groovy
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-pojosr/src/test/groovy/org/apache/jackrabbit/oak/run/osgi/DocumentNodeStoreConfigTest.groovy?rev=1702423&r1=1702422&r2=1702423&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-pojosr/src/test/groovy/org/apache/jackrabbit/oak/run/osgi/DocumentNodeStoreConfigTest.groovy (original)
+++ jackrabbit/oak/trunk/oak-pojosr/src/test/groovy/org/apache/jackrabbit/oak/run/osgi/DocumentNodeStoreConfigTest.groovy Fri Sep 11 10:52:41 2015
@@ -29,6 +29,7 @@ import org.apache.jackrabbit.oak.spi.sta
import org.h2.jdbcx.JdbcDataSource
import org.junit.After
import org.junit.Test
+import org.osgi.framework.ServiceRegistration
import javax.sql.DataSource
import java.sql.Connection
@@ -132,10 +133,10 @@ class DocumentNodeStoreConfigTest extend
//1. Register the DataSource as a service
DataSource ds1 = createDS("jdbc:h2:mem:testRDB3;DB_CLOSE_DELAY=-1")
- registry.registerService(DataSource.class.name, ds1, ['datasource.name': 'oak'] as Hashtable)
+ ServiceRegistration sdsds = registry.registerService(DataSource.class.name, ds1, ['datasource.name': 'oak'] as Hashtable)
DataSource ds2 = createDS("jdbc:h2:mem:testRDB3b;DB_CLOSE_DELAY=-1")
- registry.registerService(DataSource.class.name, ds2, ['datasource.name': 'oak-blob'] as Hashtable)
+ ServiceRegistration sdsbs = registry.registerService(DataSource.class.name, ds2, ['datasource.name': 'oak-blob'] as Hashtable)
//2. Create config for DocumentNodeStore with RDB enabled
// (supply blobDataSource which should be ignored because customBlob takes precedence)
@@ -165,6 +166,11 @@ class DocumentNodeStoreConfigTest extend
//5. Check that only one cluster node was instantiated
assert getIdsOfClusterNodes(ds1).size() == 1
+
+ //6. Unregister the data sources to test resilience wrt
+ //multiple deregistrations (OAK-3383)
+ sdsds.unregister();
+ sdsbs.unregister();
}
@Test