Author: catholicon Date: Tue Mar 20 02:42:15 2018 New Revision: 1827257 URL: http://svn.apache.org/viewvc?rev=1827257&view=rev Log: OAK-7357: NPE on activation of LuceneIndexProviderService with disabled CoR and CoR
Modified: jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexProviderService.java jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexProviderServiceTest.java Modified: jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexProviderService.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexProviderService.java?rev=1827257&r1=1827256&r2=1827257&view=diff ============================================================================== --- jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexProviderService.java (original) +++ jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexProviderService.java Tue Mar 20 02:42:15 2018 @@ -755,10 +755,11 @@ public class LuceneIndexProviderService PROP_DELETED_BLOB_COLLECTION_DEFAULT_ENABLED); if (activeDeletionEnabled && blobStore!= null) { File blobCollectorWorkingDir = new File(indexDir, "deleted-blobs"); - activeDeletedBlobCollector = ActiveDeletedBlobCollectorFactory.newInstance(blobCollectorWorkingDir, executorService); + activeDeletedBlobCollector = ActiveDeletedBlobCollectorFactory.newInstance(blobCollectorWorkingDir, + getExecutorService()); ActiveDeletedBlobCollectorMBean bean = new ActiveDeletedBlobCollectorMBeanImpl(activeDeletedBlobCollector, whiteboard, nodeStore, - indexPathService, asyncIndexInfoService, blobStore, executorService); + indexPathService, asyncIndexInfoService, blobStore, getExecutorService()); oakRegs.add(registerMBean(whiteboard, ActiveDeletedBlobCollectorMBean.class, bean, ActiveDeletedBlobCollectorMBean.TYPE, "Active lucene files collection")); Modified: jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexProviderServiceTest.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexProviderServiceTest.java?rev=1827257&r1=1827256&r2=1827257&view=diff ============================================================================== --- jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexProviderServiceTest.java (original) +++ jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexProviderServiceTest.java Tue Mar 20 02:42:15 2018 @@ -182,6 +182,31 @@ public class LuceneIndexProviderServiceT MockOsgi.deactivate(service, context.bundleContext()); } + // OAK-7357 + @Test + public void disableCoRCoW() throws Exception { + // inject ds as OAK-7357 revealed ABD bean had a bug - which comes into play only with blob stores + CachingFileDataStore ds = DataStoreUtils + .createCachingFDS(folder.newFolder().getAbsolutePath(), + folder.newFolder().getAbsolutePath()); + + context.registerService(GarbageCollectableBlobStore.class, new DataStoreBlobStore(ds)); + + // re-init service and inject references + service = new LuceneIndexProviderService(); + MockOsgi.injectServices(service, context.bundleContext()); + + Map<String,Object> config = getDefaultConfig(); + config.put("enableCopyOnReadSupport", false); + config.put("enableCopyOnWriteSupport", false); + + // activation should work + MockOsgi.activate(service, context.bundleContext(), config); + + // de-activation should work + MockOsgi.deactivate(service, context.bundleContext()); + } + @Test public void enablePrefetchIndexFiles() throws Exception{ Map<String,Object> config = getDefaultConfig();