diff --git a/function-aws-api-proxy/src/main/java/io/micronaut/function/aws/proxy/MicronautResponseWriter.java b/function-aws-api-proxy/src/main/java/io/micronaut/function/aws/proxy/MicronautResponseWriter.java index f59b51a1bd..fc8069a8cc 100644 --- a/function-aws-api-proxy/src/main/java/io/micronaut/function/aws/proxy/MicronautResponseWriter.java +++ b/function-aws-api-proxy/src/main/java/io/micronaut/function/aws/proxy/MicronautResponseWriter.java @@ -33,7 +33,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.ws.rs.core.Response; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.nio.charset.Charset; @@ -109,8 +108,7 @@ public AwsProxyResponse writeResponse( if (containerResponse.getAwsProxyRequest().getRequestSource() == AwsProxyRequest.RequestSource.ALB) { final HttpStatus status = containerResponse.getStatus(); awsProxyResponse.setStatusDescription( - status + " " + - Response.Status.fromStatusCode(status.getCode()).getReasonPhrase()); + status + " " + status.getReason()); } Timer.stop(TIMER_NAME); diff --git a/function-aws-api-proxy/src/test/groovy/io/micronaut/function/aws/proxy/ResponseStatusSpec.groovy b/function-aws-api-proxy/src/test/groovy/io/micronaut/function/aws/proxy/ResponseStatusSpec.groovy index 52369c698c..ee1a65cc9d 100644 --- a/function-aws-api-proxy/src/test/groovy/io/micronaut/function/aws/proxy/ResponseStatusSpec.groovy +++ b/function-aws-api-proxy/src/test/groovy/io/micronaut/function/aws/proxy/ResponseStatusSpec.groovy @@ -43,6 +43,29 @@ class ResponseStatusSpec extends Specification { handler.close() } + void "test multi status with alb"() { + given: + + def handler = new MicronautLambdaContainerHandler( + ApplicationContext.builder().properties([ + 'micronaut.security.enabled': false, + 'spec.name': 'ResponseStatusSpec' + ]) + ) + + AwsProxyRequestBuilder builder = new AwsProxyRequestBuilder('/response-status/multi-status', HttpMethod.GET.toString()).alb() + builder.header(HttpHeaders.CONTENT_TYPE, MediaType.TEXT_PLAIN) + + when: + def response = handler.proxy(builder.build(), lambdaContext) + + then: + response.statusCode == 207 + + cleanup: + handler.close() + } + void "test optional causes 404"() { given: @@ -164,5 +187,11 @@ class ResponseStatusSpec extends Specification { void deleteSomething() { // do nothing } + + @Get(uri = "/multi-status", processes = MediaType.TEXT_PLAIN) + @Status(HttpStatus.MULTI_STATUS) + void multiStatus() { + // do nothing + } } }