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();


Reply via email to