>From Peeyush Gupta <[email protected]>: Peeyush Gupta has submitted this change. ( https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/18280 )
Change subject: [ASTERIXDB-3397][API]Add retriable flag to returned errors ...................................................................... [ASTERIXDB-3397][API]Add retriable flag to returned errors - user model changes: no - storage format changes: no - interface changes: no Change-Id: I65b31440b2a0570ab3d0533fde620a71476aa0b0 Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/18280 Integration-Tests: Jenkins <[email protected]> Reviewed-by: Murtadha Hubail <[email protected]> Tested-by: Peeyush Gupta <[email protected]> --- M asterixdb/asterix-app/src/main/java/org/apache/asterix/app/result/ExecutionWarning.java M asterixdb/asterix-app/src/main/java/org/apache/asterix/app/result/ExecutionError.java M asterixdb/asterix-common/src/main/java/org/apache/asterix/common/api/ICodedMessage.java M asterixdb/asterix-app/src/test/resources/runtimets/results/api/request-param-validation-400-BAD/request-param-validation-400-BAD.01.regexjson M asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/ResultUtil.java M asterixdb/asterix-app/src/main/java/org/apache/asterix/app/result/fields/AbstractCodedMessagePrinter.java 6 files changed, 40 insertions(+), 3 deletions(-) Approvals: Murtadha Hubail: Looks good to me, approved Peeyush Gupta: Verified Jenkins: Verified diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/ResultUtil.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/ResultUtil.java index cf535d9..3b1b2e8 100644 --- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/ResultUtil.java +++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/ResultUtil.java @@ -110,6 +110,10 @@ printFieldInternal(pw, name, String.valueOf(value), comma); } + public static void printField(PrintWriter pw, String name, boolean value, boolean comma) { + printFieldInternal(pw, name, String.valueOf(value), comma); + } + protected static void printFieldInternal(PrintWriter pw, String name, String value, boolean comma) { pw.print("\t\""); pw.print(name); diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/result/ExecutionError.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/result/ExecutionError.java index 6556b61..a25c5a2 100644 --- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/result/ExecutionError.java +++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/result/ExecutionError.java @@ -52,4 +52,9 @@ public String getMessage() { return message; } + + @Override + public boolean isRetriable() { + return false; + } } diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/result/ExecutionWarning.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/result/ExecutionWarning.java index 5552bb8..66b8f0e 100644 --- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/result/ExecutionWarning.java +++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/result/ExecutionWarning.java @@ -44,4 +44,9 @@ public String getMessage() { return message; } + + @Override + public boolean isRetriable() { + return false; + } } diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/result/fields/AbstractCodedMessagePrinter.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/result/fields/AbstractCodedMessagePrinter.java index f1eb315..bbeb81c 100644 --- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/result/fields/AbstractCodedMessagePrinter.java +++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/result/fields/AbstractCodedMessagePrinter.java @@ -33,7 +33,8 @@ private enum CodedMessageField { CODE("code"), - MSG("msg"); + MSG("msg"), + RETRIABLE("retriable"); private final String str; @@ -62,7 +63,9 @@ pw.print("{ \n\t"); ResultUtil.printField(pw, CodedMessageField.CODE.str(), codedMessage.getCode()); pw.print("\t"); - ResultUtil.printField(pw, CodedMessageField.MSG.str(), JSONUtil.escape(codedMessage.getMessage()), false); + ResultUtil.printField(pw, CodedMessageField.MSG.str(), JSONUtil.escape(codedMessage.getMessage())); + pw.print("\t"); + ResultUtil.printField(pw, CodedMessageField.RETRIABLE.str(), codedMessage.isRetriable(), false); pw.print("\t} \n\t"); boolean lastMsg = i == messages.size() - 1; if (!lastMsg) { @@ -78,6 +81,7 @@ ObjectNode error = array.addObject(); error.put(CodedMessageField.CODE.str(), codedMessage.getCode()); error.put(CodedMessageField.MSG.str(), codedMessage.getMessage()); + error.put(CodedMessageField.RETRIABLE.str(), codedMessage.isRetriable()); }); return objectNode; } diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/api/request-param-validation-400-BAD/request-param-validation-400-BAD.01.regexjson b/asterixdb/asterix-app/src/test/resources/runtimets/results/api/request-param-validation-400-BAD/request-param-validation-400-BAD.01.regexjson index ba3c970..f823ff8 100644 --- a/asterixdb/asterix-app/src/test/resources/runtimets/results/api/request-param-validation-400-BAD/request-param-validation-400-BAD.01.regexjson +++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/api/request-param-validation-400-BAD/request-param-validation-400-BAD.01.regexjson @@ -1,6 +1,6 @@ { "errors": [{ - "code": 1, "msg": "ASX0047: Invalid value for parameter 'format': foo" } + "code": 1, "msg": "ASX0047: Invalid value for parameter 'format': foo", "retriable": false } ], "status": "fatal", "metrics": { diff --git a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/api/ICodedMessage.java b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/api/ICodedMessage.java index 06202c4..e2397aa 100644 --- a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/api/ICodedMessage.java +++ b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/api/ICodedMessage.java @@ -33,4 +33,6 @@ * @return the message */ String getMessage(); + + boolean isRetriable(); } -- To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/18280 To unsubscribe, or for help writing mail filters, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-Change-Id: I65b31440b2a0570ab3d0533fde620a71476aa0b0 Gerrit-Change-Number: 18280 Gerrit-PatchSet: 4 Gerrit-Owner: Peeyush Gupta <[email protected]> Gerrit-Reviewer: Jenkins <[email protected]> Gerrit-Reviewer: Michael Blow <[email protected]> Gerrit-Reviewer: Murtadha Hubail <[email protected]> Gerrit-Reviewer: Peeyush Gupta <[email protected]> Gerrit-MessageType: merged
