diff options
-rw-r--r-- | common/src/main/java/org/onap/so/client/aai/AAIErrorFormatter.java | 4 | ||||
-rw-r--r-- | common/src/test/java/org/onap/so/client/aai/AAIErrorFormatterTest.java | 16 |
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); |