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