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