summaryrefslogtreecommitdiffstats
path: root/messagebus
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2019-04-28 16:40:58 +0200
committerHenning Baldersheim <balder@yahoo-inc.com>2019-04-28 16:40:58 +0200
commit79cde9a3bab5dddd5c806f501b92e30b14840f00 (patch)
tree464e072285eed7b907e8130b44e81896fc8c9061 /messagebus
parente287c58dce2df5eb5451a61000aab34553698a55 (diff)
Report fatal-mbus-errors-as server error.
Diffstat (limited to 'messagebus')
-rw-r--r--messagebus/abi-spec.json5
-rw-r--r--messagebus/src/main/java/com/yahoo/messagebus/ErrorCode.java10
-rwxr-xr-xmessagebus/src/main/java/com/yahoo/messagebus/routing/RoutingNode.java4
3 files changed, 16 insertions, 3 deletions
diff --git a/messagebus/abi-spec.json b/messagebus/abi-spec.json
index baf2046e322..9c445aea6fc 100644
--- a/messagebus/abi-spec.json
+++ b/messagebus/abi-spec.json
@@ -174,7 +174,10 @@
],
"methods": [
"public void <init>()",
- "public static java.lang.String getName(int)"
+ "public static java.lang.String getName(int)",
+ "public static boolean isFatal(int)",
+ "public static boolean isTransient(int)",
+ "public static boolean isMBusError(int)"
],
"fields": [
"public static final int NONE",
diff --git a/messagebus/src/main/java/com/yahoo/messagebus/ErrorCode.java b/messagebus/src/main/java/com/yahoo/messagebus/ErrorCode.java
index e54279e0541..7357f13ba15 100644
--- a/messagebus/src/main/java/com/yahoo/messagebus/ErrorCode.java
+++ b/messagebus/src/main/java/com/yahoo/messagebus/ErrorCode.java
@@ -122,4 +122,14 @@ public final class ErrorCode {
default : return "UNKNOWN(" + error + ")";
}
}
+ public static boolean isFatal(int code) {
+ return code >= FATAL_ERROR;
+ }
+ public static boolean isTransient(int code) {
+ return code >= TRANSIENT_ERROR;
+ }
+ public static boolean isMBusError(int code) {
+ return ((code < APP_TRANSIENT_ERROR) && isTransient(code))
+ || ((code < APP_FATAL_ERROR) && isFatal(code));
+ }
}
diff --git a/messagebus/src/main/java/com/yahoo/messagebus/routing/RoutingNode.java b/messagebus/src/main/java/com/yahoo/messagebus/routing/RoutingNode.java
index e98a3820ff2..e28809c2928 100755
--- a/messagebus/src/main/java/com/yahoo/messagebus/routing/RoutingNode.java
+++ b/messagebus/src/main/java/com/yahoo/messagebus/routing/RoutingNode.java
@@ -244,7 +244,7 @@ public class RoutingNode implements ReplyHandler {
policy.merge(routingContext);
} catch (RuntimeException e) {
setError(ErrorCode.POLICY_ERROR,
- "Policy '" + dir.getName() + "' threw an exception; " + exceptionMessageWithTrace(e));
+ "Policy '" + dir.getName() + "' threw an exception during merge; " + exceptionMessageWithTrace(e));
}
if (reply == null) {
setError(ErrorCode.APP_FATAL_ERROR,
@@ -539,7 +539,7 @@ public class RoutingNode implements ReplyHandler {
policy.select(routingContext);
} catch (RuntimeException e) {
setError(ErrorCode.POLICY_ERROR,
- "Policy '" + dir.getName() + "' threw an exception; " + exceptionMessageWithTrace(e));
+ "Policy '" + dir.getName() + "' threw an exception during select; " + exceptionMessageWithTrace(e));
return false;
}
if (children.isEmpty()) {