Author: chetanm
Date: Wed Sep 6 11:18:27 2017
New Revision: 1807468
URL: http://svn.apache.org/viewvc?rev=1807468&view=rev
Log:
OAK-6622 - Configure default core pool size for thread pool used by oak-lucene
Added ignored test demonstrating the behaviour
Modified:
jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexProviderServiceTest.java
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=1807468&r1=1807467&r2=1807468&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
Wed Sep 6 11:18:27 2017
@@ -29,6 +29,10 @@ import static org.mockito.Mockito.mock;
import java.io.File;
import java.util.HashMap;
import java.util.Map;
+import java.util.concurrent.Callable;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.TimeUnit;
import org.apache.commons.io.FileUtils;
import org.apache.commons.lang3.reflect.FieldUtils;
@@ -41,7 +45,6 @@ import org.apache.jackrabbit.oak.plugins
import org.apache.jackrabbit.oak.plugins.index.AsyncIndexInfoService;
import org.apache.jackrabbit.oak.plugins.index.IndexEditorProvider;
import org.apache.jackrabbit.oak.plugins.index.IndexPathService;
-import org.apache.jackrabbit.oak.plugins.index.fulltext.ExtractedText;
import
org.apache.jackrabbit.oak.plugins.index.fulltext.PreExtractedTextProvider;
import org.apache.jackrabbit.oak.plugins.index.importer.IndexImporterProvider;
import
org.apache.jackrabbit.oak.plugins.index.lucene.score.ScorerProviderFactory;
@@ -60,6 +63,7 @@ import org.apache.sling.testing.mock.osg
import org.apache.sling.testing.mock.osgi.junit.OsgiContext;
import org.junit.After;
import org.junit.Before;
+import org.junit.Ignore;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TemporaryFolder;
@@ -277,6 +281,43 @@ public class LuceneIndexProviderServiceT
assertNotNull(editorProvider.getBlobStore());
}
+ @Ignore("OAK-6622")
+ @Test
+ public void executorPoolBehaviour() throws Exception{
+ MockOsgi.activate(service, context.bundleContext(),
getDefaultConfig());
+ ExecutorService executor = service.getExecutorService();
+
+ final CountDownLatch latch1 = new CountDownLatch(1);
+ final CountDownLatch latch2 = new CountDownLatch(1);
+
+ Callable cb1 = new Callable() {
+ @Override
+ public Object call() throws Exception {
+ latch1.await();
+ return null;
+ }
+ };
+
+ Callable cb2 = new Callable() {
+ @Override
+ public Object call() throws Exception {
+ latch2.countDown();
+ return null;
+ }
+ };
+
+ executor.submit(cb1);
+ executor.submit(cb2);
+
+ //Even if one task gets stuck the other task must get completed
+ assertTrue("Second task not executed", latch2.await(1,
TimeUnit.MINUTES));
+ latch1.countDown();
+
+ MockOsgi.deactivate(service, context.bundleContext());
+ }
+
+
+
private void reactivate() {
MockOsgi.deactivate(service, context.bundleContext());
service = new LuceneIndexProviderService();