[NO ISSUE][API] add retriable flag only when error/warning is retriable

Change-Id: I9d63e30cd25e80dc7b7f2cab5be23f1b0472c41d
Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/18346
Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Reviewed-by: Peeyush Gupta <peeyush.gupta@couchbase.com>
Reviewed-by: Murtadha Hubail <mhubail@apache.org>
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 bbeb81c..6564e54 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
@@ -63,9 +63,14 @@
             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()));
-            pw.print("\t");
-            ResultUtil.printField(pw, CodedMessageField.RETRIABLE.str(), codedMessage.isRetriable(), false);
+            if (codedMessage.isRetriable()) {
+                ResultUtil.printField(pw, CodedMessageField.MSG.str(), JSONUtil.escape(codedMessage.getMessage()));
+                pw.print("\t");
+                ResultUtil.printField(pw, CodedMessageField.RETRIABLE.str(), codedMessage.isRetriable(), false);
+            } else {
+                ResultUtil.printField(pw, CodedMessageField.MSG.str(), JSONUtil.escape(codedMessage.getMessage()),
+                        false);
+            }
             pw.print("\t} \n\t");
             boolean lastMsg = i == messages.size() - 1;
             if (!lastMsg) {
@@ -81,7 +86,9 @@
             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());
+            if (codedMessage.isRetriable()) {
+                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 f823ff8..ba3c970 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",		"retriable": false	}
+		"code": 1,		"msg": "ASX0047: Invalid value for parameter 'format': foo"	}
 	],
 	"status": "fatal",
 	"metrics": {