diff options
author | Jo Kristian Bergum <bergum@yahoo-inc.com> | 2017-10-26 21:30:17 +0200 |
---|---|---|
committer | Jo Kristian Bergum <bergum@yahoo-inc.com> | 2017-10-26 21:30:17 +0200 |
commit | c8d67995a7f6e6bf24d7d2df27dfb7249de44a0d (patch) | |
tree | baa2f9f4ac23f8d2377744dff162d39c9ba2a459 /documentapi | |
parent | 07ba3884e18d88b8660ecfbb79f1ce7e9770b984 (diff) |
Add stack trace to message
Diffstat (limited to 'documentapi')
-rw-r--r-- | documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/AsyncInitializationPolicy.java | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/AsyncInitializationPolicy.java b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/AsyncInitializationPolicy.java index 947e119fbd4..dafa921089f 100644 --- a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/AsyncInitializationPolicy.java +++ b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/AsyncInitializationPolicy.java @@ -5,6 +5,8 @@ import com.yahoo.messagebus.*; import com.yahoo.messagebus.metrics.MetricSet; import com.yahoo.messagebus.routing.RoutingContext; +import java.io.PrintWriter; +import java.io.StringWriter; import java.util.List; import java.util.Map; import java.util.TreeMap; @@ -78,7 +80,7 @@ public abstract class AsyncInitializationPolicy implements DocumentProtocolRouti synchronized (this) { if (initException != null) { Reply reply = new EmptyReply(); - reply.addError(new com.yahoo.messagebus.Error(ErrorCode.POLICY_ERROR, initException.getMessage())); + reply.addError(new com.yahoo.messagebus.Error(ErrorCode.POLICY_ERROR, "Policy threw exception during init:" + exceptionMessageWithTrace(initException))); routingContext.setReply(reply); return; } @@ -100,6 +102,7 @@ public abstract class AsyncInitializationPolicy implements DocumentProtocolRouti try { init(); } catch (Exception e) { + e.printStackTrace(); initException = e; } @@ -115,4 +118,18 @@ public abstract class AsyncInitializationPolicy implements DocumentProtocolRouti executor.shutdownNow(); } } + + + private static String exceptionMessageWithTrace(Exception e) { + StringWriter sw = new StringWriter(); + try (PrintWriter pw = new PrintWriter(sw)) { + e.printStackTrace(pw); + pw.flush(); + } + return sw.toString(); + + } + + + } |