aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBenjamin, Max <max.benjamin@att.com>2019-09-10 13:52:53 -0400
committerBenjamin, Max (mb388a) <mb388a@att.com>2019-09-10 13:52:53 -0400
commit193105ce3a95fb1682fef0a17c081c2e6ebb8ff5 (patch)
tree8656e25b5c67254c7debec3143cc1d1d1cdb3122
parentcd7f7a357a4a85de096f3ce7b6d20d0df655af79 (diff)
error message formatter now handles percent
error message formatter now handles percent encoding Issue-ID: SO-2303 Signed-off-by: Benjamin, Max (mb388a) <mb388a@att.com> Change-Id: If4784ab54023b1df43eb7ee266a2797c9a12731b
-rw-r--r--common/src/main/java/org/onap/so/client/aai/AAIErrorFormatter.java4
-rw-r--r--common/src/test/java/org/onap/so/client/aai/AAIErrorFormatterTest.java16
2 files changed, 19 insertions, 1 deletions
diff --git a/common/src/main/java/org/onap/so/client/aai/AAIErrorFormatter.java b/common/src/main/java/org/onap/so/client/aai/AAIErrorFormatter.java
index 2fe3910486..e255b297ed 100644
--- a/common/src/main/java/org/onap/so/client/aai/AAIErrorFormatter.java
+++ b/common/src/main/java/org/onap/so/client/aai/AAIErrorFormatter.java
@@ -50,6 +50,8 @@ public class AAIErrorFormatter {
}
protected String format(String s, List<String> variables) {
- return String.format(s.replaceAll("%(\\d+)", "%$1\\$s"), variables.toArray());
+ s = s.replaceAll("%(\\d(?!\\d))", "%$1\\$s");
+ s = s.replaceAll("%(\\d{2})", "%%$1");
+ return String.format(s, variables.toArray());
}
}
diff --git a/common/src/test/java/org/onap/so/client/aai/AAIErrorFormatterTest.java b/common/src/test/java/org/onap/so/client/aai/AAIErrorFormatterTest.java
index 2ef50dd77b..3587c71de0 100644
--- a/common/src/test/java/org/onap/so/client/aai/AAIErrorFormatterTest.java
+++ b/common/src/test/java/org/onap/so/client/aai/AAIErrorFormatterTest.java
@@ -79,6 +79,22 @@ public class AAIErrorFormatterTest {
}
@Test
+ public void errorMessageOnPercentEncodedTest() {
+ ServiceException svcException = new ServiceException();
+ svcException.setText("test my%20Test %1 message - %2");
+ svcException.setVariables(Arrays.asList("error", "service exception %1 test"));
+
+ RequestError requestError = new RequestError();
+ requestError.setServiceException(svcException);
+
+ doReturn(requestError).when(errorObj).getRequestError();
+
+ AAIErrorFormatter formatter = new AAIErrorFormatter(errorObj);
+ String result = formatter.getMessage();
+ assertEquals("equal", "test my%20Test error message - service exception error test", result);
+ }
+
+ @Test
public void testGetMessageNoParsable() {
errorObj.setRequestError(null);
AAIErrorFormatter formatter = new AAIErrorFormatter(errorObj);