diff --git a/spring-cloud-function-adapters/spring-cloud-function-adapter-aws/src/main/java/org/springframework/cloud/function/adapter/aws/FunctionInvoker.java b/spring-cloud-function-adapters/spring-cloud-function-adapter-aws/src/main/java/org/springframework/cloud/function/adapter/aws/FunctionInvoker.java index 3a2b3376b..ed206d85e 100644 --- a/spring-cloud-function-adapters/spring-cloud-function-adapter-aws/src/main/java/org/springframework/cloud/function/adapter/aws/FunctionInvoker.java +++ b/spring-cloud-function-adapters/spring-cloud-function-adapter-aws/src/main/java/org/springframework/cloud/function/adapter/aws/FunctionInvoker.java @@ -100,7 +100,7 @@ public class FunctionInvoker implements RequestStreamHandler { response.put("statusDescription", httpStatus.toString()); } - String body = new String(responseMessage.getPayload(), StandardCharsets.UTF_8).replaceAll("\"", ""); + String body = new String(responseMessage.getPayload(), StandardCharsets.UTF_8).replaceAll("\\\"", "\""); response.put("body", body); Map responseHeaders = new HashMap<>(); @@ -193,7 +193,7 @@ public class FunctionInvoker implements RequestStreamHandler { } else { Object body = requestMap.remove("body"); - body = body instanceof String ? ("\"" + body + "\"").getBytes(StandardCharsets.UTF_8) : mapper.writeValueAsBytes(body); + body = body instanceof String ? String.valueOf(body).getBytes(StandardCharsets.UTF_8) : mapper.writeValueAsBytes(body); messageBuilder = MessageBuilder.withPayload(body).copyHeaders(requestMap); } } diff --git a/spring-cloud-function-adapters/spring-cloud-function-adapter-aws/src/test/java/org/springframework/cloud/function/adapter/aws/FunctionInvokerTests.java b/spring-cloud-function-adapters/spring-cloud-function-adapter-aws/src/test/java/org/springframework/cloud/function/adapter/aws/FunctionInvokerTests.java index 055edcaf6..6a3a85284 100644 --- a/spring-cloud-function-adapters/spring-cloud-function-adapter-aws/src/test/java/org/springframework/cloud/function/adapter/aws/FunctionInvokerTests.java +++ b/spring-cloud-function-adapters/spring-cloud-function-adapter-aws/src/test/java/org/springframework/cloud/function/adapter/aws/FunctionInvokerTests.java @@ -590,7 +590,7 @@ public class FunctionInvokerTests { invoker.handleRequest(targetStream, output, null); ObjectMapper mapper = new ObjectMapper(); Map result = mapper.readValue(output.toByteArray(), Map.class); - assertThat(result.get("body")).isEqualTo("HELLO"); + assertThat(result.get("body")).isEqualTo("\"HELLO\""); } @SuppressWarnings("rawtypes") @@ -605,7 +605,7 @@ public class FunctionInvokerTests { invoker.handleRequest(targetStream, output, null); Map result = mapper.readValue(output.toByteArray(), Map.class); - assertThat(result.get("body")).isEqualTo("JIM LAHEY"); + assertThat(result.get("body")).isEqualTo("\"JIM LAHEY\""); } @SuppressWarnings("rawtypes") @@ -621,7 +621,7 @@ public class FunctionInvokerTests { Map result = mapper.readValue(output.toByteArray(), Map.class); System.out.println(result); - assertThat(result.get("body")).isEqualTo("hello"); + assertThat(result.get("body")).isEqualTo("\"hello\""); } @SuppressWarnings("rawtypes") @@ -637,7 +637,7 @@ public class FunctionInvokerTests { Map result = mapper.readValue(output.toByteArray(), Map.class); System.out.println(result); - assertThat(result.get("body")).isEqualTo("hello"); + assertThat(result.get("body")).isEqualTo("\"hello\""); } @SuppressWarnings("rawtypes") @@ -653,7 +653,7 @@ public class FunctionInvokerTests { Map result = mapper.readValue(output.toByteArray(), Map.class); System.out.println(result); - assertThat(result.get("body")).isEqualTo("hello"); + assertThat(result.get("body")).isEqualTo("\"hello\""); } @EnableAutoConfiguration