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