summaryrefslogtreecommitdiffstats
path: root/documentapi
diff options
context:
space:
mode:
authorJo Kristian Bergum <bergum@yahoo-inc.com>2017-10-26 21:30:17 +0200
committerJo Kristian Bergum <bergum@yahoo-inc.com>2017-10-26 21:30:17 +0200
commitc8d67995a7f6e6bf24d7d2df27dfb7249de44a0d (patch)
treebaa2f9f4ac23f8d2377744dff162d39c9ba2a459 /documentapi
parent07ba3884e18d88b8660ecfbb79f1ce7e9770b984 (diff)
Add stack trace to message
Diffstat (limited to 'documentapi')
-rw-r--r--documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/AsyncInitializationPolicy.java19
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();
+
+ }
+
+
+
}