This is an automated email from the ASF dual-hosted git repository.

peeyush pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/asterixdb.git


The following commit(s) were added to refs/heads/master by this push:
     new 54ff6334fd [ASTERIXDB-3397][API]Add retriable flag to returned errors
54ff6334fd is described below

commit 54ff6334fdba882d82ac5748caf81705fa213e71
Author: Peeyush Gupta <[email protected]>
AuthorDate: Thu May 9 14:14:07 2024 -0700

    [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]>
---
 .../main/java/org/apache/asterix/api/http/server/ResultUtil.java  | 4 ++++
 .../main/java/org/apache/asterix/app/result/ExecutionError.java   | 5 +++++
 .../main/java/org/apache/asterix/app/result/ExecutionWarning.java | 5 +++++
 .../asterix/app/result/fields/AbstractCodedMessagePrinter.java    | 8 ++++++--
 .../request-param-validation-400-BAD.01.regexjson                 | 2 +-
 .../main/java/org/apache/asterix/common/api/ICodedMessage.java    | 2 ++
 6 files changed, 23 insertions(+), 3 deletions(-)

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 cf535d9d01..3b1b2e8bd0 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 @@ public class ResultUtil {
         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 6556b61a8c..a25c5a259a 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 class ExecutionError implements ICodedMessage {
     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 5552bb82fb..66b8f0ef32 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 class ExecutionWarning implements ICodedMessage {
     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 f1eb315fe6..bbeb81c6f3 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 @@ public abstract class AbstractCodedMessagePrinter implements 
IResponseFieldPrint
 
     private enum CodedMessageField {
         CODE("code"),
-        MSG("msg");
+        MSG("msg"),
+        RETRIABLE("retriable");
 
         private final String str;
 
@@ -62,7 +63,9 @@ public abstract class AbstractCodedMessagePrinter implements 
IResponseFieldPrint
             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 @@ public abstract class AbstractCodedMessagePrinter implements 
IResponseFieldPrint
             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 ba3c97068c..f823ff8f43 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 06202c49ab..e2397aa308 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 @@ public interface ICodedMessage {
      * @return the message
      */
     String getMessage();
+
+    boolean isRetriable();
 }

Reply via email to