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 ca...@apache.org on 2018/03/20 02:42:15 UTC

svn commit: r1827257 - in /jackrabbit/oak/trunk/oak-lucene/src: main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexProviderService.java test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexProviderServiceTest.java

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