You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@curator.apache.org by ra...@apache.org on 2016/01/18 01:29:53 UTC
[2/9] curator git commit: Added an unhandled exception error handler
Added an unhandled exception error handler
Project: http://git-wip-us.apache.org/repos/asf/curator/repo
Commit: http://git-wip-us.apache.org/repos/asf/curator/commit/9951d4ec
Tree: http://git-wip-us.apache.org/repos/asf/curator/tree/9951d4ec
Diff: http://git-wip-us.apache.org/repos/asf/curator/diff/9951d4ec
Branch: refs/heads/CURATOR-3.0
Commit: 9951d4eceecdd97e73291c061ba04ec114ed9e53
Parents: 003acc6
Author: randgalt <ra...@apache.org>
Authored: Thu Jan 14 22:37:24 2016 -0500
Committer: randgalt <ra...@apache.org>
Committed: Thu Jan 14 22:37:24 2016 -0500
----------------------------------------------------------------------
.../java/org/apache/curator/utils/ThreadUtils.java | 15 +++++++++++++++
1 file changed, 15 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/curator/blob/9951d4ec/curator-client/src/main/java/org/apache/curator/utils/ThreadUtils.java
----------------------------------------------------------------------
diff --git a/curator-client/src/main/java/org/apache/curator/utils/ThreadUtils.java b/curator-client/src/main/java/org/apache/curator/utils/ThreadUtils.java
index 24efd50..74b4e40 100644
--- a/curator-client/src/main/java/org/apache/curator/utils/ThreadUtils.java
+++ b/curator-client/src/main/java/org/apache/curator/utils/ThreadUtils.java
@@ -18,7 +18,10 @@
*/
package org.apache.curator.utils;
+import com.google.common.base.Throwables;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
@@ -26,6 +29,8 @@ import java.util.concurrent.ThreadFactory;
public class ThreadUtils
{
+ private static final Logger log = LoggerFactory.getLogger(ThreadUtils.class);
+
public static void checkInterrupted(Throwable e)
{
if ( e instanceof InterruptedException )
@@ -61,9 +66,19 @@ public class ThreadUtils
public static ThreadFactory newGenericThreadFactory(String processName)
{
+ Thread.UncaughtExceptionHandler uncaughtExceptionHandler = new Thread.UncaughtExceptionHandler()
+ {
+ @Override
+ public void uncaughtException(Thread t, Throwable e)
+ {
+ log.error("Unexpected exception in thread: " + t, e);
+ Throwables.propagate(e);
+ }
+ };
return new ThreadFactoryBuilder()
.setNameFormat(processName + "-%d")
.setDaemon(true)
+ .setUncaughtExceptionHandler(uncaughtExceptionHandler)
.build();
}