You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-dev@jackrabbit.apache.org by Davide Giannella <da...@apache.org> on 2015/04/29 17:10:35 UTC
Re: svn commit: r1673140 - in /jackrabbit/oak/trunk/oak-core/src:
main/java/org/apache/jackrabbit/oak/Oak.java test/java/org/apache/jackrabbit/oak/OakTest.java
On 13/04/2015 10:12, chetanm@apache.org wrote:
> ...
> + private static class ExecutorCloser implements Closeable {
> + final ExecutorService executorService;
> +
> + private ExecutorCloser(ExecutorService executorService) {
> + this.executorService = executorService;
> + }
> +
> + @Override
> + public void close() throws IOException {
> + executorService.shutdown();
> + }
> + }
> +
>
Was going through some commits.
Wouldn't it be better something like the following? It will provide us
with more insights during shutdown.
diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/Oak.java
b/oak-core/src/main/java/org/apache/jackrabbit/oak/Oak.java
index 451395c..b06cc9f 100644
--- a/oak-core/src/main/java/org/apache/jackrabbit/oak/Oak.java
+++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/Oak.java
@@ -684,7 +684,17 @@ public class Oak {
@Override
public void close() throws IOException {
- executorService.shutdown();
+ try {
+ executorService.shutdown();
+ executorService.awaitTermination(5, TimeUnit.SECONDS);
+ } catch (InterruptedException e) {
+ LOG.error("Error while shutting down executor", e);
+ } finally {
+ if (!executorService.isTerminated()) {
+ LOG.warn("Executor didn't shutdown properly. Will
be forced now.");
+ }
+ executorService.shutdownNow();
+ }
}
}
Davide