Author: chetanm
Date: Fri Sep  8 08:53:22 2017
New Revision: 1807687

URL: http://svn.apache.org/viewvc?rev=1807687&view=rev
Log:
OAK-6635 - IndexReader closed exception in DocumentQueue

Use executor instead of scheduled executor such that any exception from
the executed runnable gets passed to exception handler

Modified:
    
jackrabbit/oak/trunk/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/benchmark/HybridIndexTest.java

Modified: 
jackrabbit/oak/trunk/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/benchmark/HybridIndexTest.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/benchmark/HybridIndexTest.java?rev=1807687&r1=1807686&r2=1807687&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/benchmark/HybridIndexTest.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/benchmark/HybridIndexTest.java
 Fri Sep  8 08:53:22 2017
@@ -28,8 +28,8 @@ import java.util.Queue;
 import java.util.Random;
 import java.util.concurrent.Executors;
 import java.util.concurrent.LinkedBlockingDeque;
-import java.util.concurrent.ScheduledExecutorService;
-import java.util.concurrent.ScheduledThreadPoolExecutor;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.ThreadPoolExecutor;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicInteger;
 
@@ -77,6 +77,8 @@ import org.apache.jackrabbit.oak.spi.whi
 import org.apache.jackrabbit.oak.spi.whiteboard.WhiteboardUtils;
 import org.apache.jackrabbit.oak.stats.Clock;
 import org.apache.jackrabbit.oak.stats.StatisticsProvider;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import static com.google.common.base.Preconditions.checkNotNull;
 import static java.util.Collections.singleton;
@@ -134,8 +136,9 @@ public class HybridIndexTest extends Abs
     private final AtomicInteger indexedNodeCount = new AtomicInteger();
     private List<TestContext> contexts = new ArrayList<>();
     private final StatisticsProvider statsProvider;
-    private final ScheduledExecutorService executorService = 
MoreExecutors.getExitingScheduledExecutorService(
-            (ScheduledThreadPoolExecutor) Executors.newScheduledThreadPool(5));
+    private final Logger log = LoggerFactory.getLogger(getClass());
+    private final ExecutorService executorService = 
MoreExecutors.getExitingExecutorService(
+            (ThreadPoolExecutor) Executors.newFixedThreadPool(5));
 
 
     public HybridIndexTest(File workDir, StatisticsProvider statsProvider) {
@@ -339,6 +342,8 @@ public class HybridIndexTest extends Abs
         queue = new DocumentQueue(queueSize, tracker, executorService, 
statsProvider);
         localIndexObserver = new LocalIndexObserver(queue, statsProvider);
         luceneEditorProvider.setIndexingQueue(queue);
+
+        Thread.setDefaultUncaughtExceptionHandler((t, e) -> log.warn("Uncaught 
exception", e));
     }
 
     private void runAsyncIndex() {


Reply via email to