diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2019-04-28 16:40:58 +0200 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2019-04-28 16:40:58 +0200 |
commit | 79cde9a3bab5dddd5c806f501b92e30b14840f00 (patch) | |
tree | 464e072285eed7b907e8130b44e81896fc8c9061 /messagebus | |
parent | e287c58dce2df5eb5451a61000aab34553698a55 (diff) |
Report fatal-mbus-errors-as server error.
Diffstat (limited to 'messagebus')
-rw-r--r-- | messagebus/abi-spec.json | 5 | ||||
-rw-r--r-- | messagebus/src/main/java/com/yahoo/messagebus/ErrorCode.java | 10 | ||||
-rwxr-xr-x | messagebus/src/main/java/com/yahoo/messagebus/routing/RoutingNode.java | 4 |
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()) { |