Skip to content

Commit 757bb7f

Browse files
authored
bug: protect against null context (#1963)
* bug: protect against null context this is an scenario you could face in testing. * Revert "fix(deps): update aws-java-sdk-v2 monorepo to v2.21.29 (#1930)" This reverts commit e1193d0.
1 parent e1193d0 commit 757bb7f

File tree

3 files changed

+16
-3
lines changed

3 files changed

+16
-3
lines changed

aws-apigateway/src/main/java/io/micronaut/aws/apigateway/HttpRequestStageResolver.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,9 @@ public class HttpRequestStageResolver implements StageResolver<HttpRequest<?>> {
3838
public Optional<String> resolve(@NonNull HttpRequest<?> request) {
3939
if (request instanceof ServletHttpRequest servletHttpRequest) {
4040
Object nativeRequest = servletHttpRequest.getNativeRequest();
41-
if (nativeRequest instanceof APIGatewayV2HTTPEvent aPIGatewayV2HTTPEvent) {
41+
if (nativeRequest instanceof APIGatewayV2HTTPEvent aPIGatewayV2HTTPEvent && aPIGatewayV2HTTPEvent.getRequestContext() != null) {
4242
return Optional.of(aPIGatewayV2HTTPEvent.getRequestContext().getStage());
43-
} else if (nativeRequest instanceof APIGatewayProxyRequestEvent apiGatewayProxyRequestEvent) {
43+
} else if (nativeRequest instanceof APIGatewayProxyRequestEvent apiGatewayProxyRequestEvent && apiGatewayProxyRequestEvent.getRequestContext() != null) {
4444
return Optional.of(apiGatewayProxyRequestEvent.getRequestContext().getStage());
4545
}
4646
}

aws-apigateway/src/test/groovy/io/micronaut/aws/apigateway/HttpRequestStageResolverSpec.groovy

+13
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,19 @@ class HttpRequestStageResolverSpec extends Specification {
2323
'foo' == resolver.resolve(request).get()
2424
}
2525

26+
void "no npe if no context"() {
27+
HttpRequestStageResolver resolver = new HttpRequestStageResolver()
28+
def proxyRequestStub = Stub(APIGatewayV2HTTPEvent) {
29+
getRequestContext() >> null
30+
}
31+
def request = Stub(ServletHttpRequest) {
32+
getNativeRequest() >> proxyRequestStub
33+
}
34+
35+
expect:
36+
resolver.resolve(request).isEmpty()
37+
}
38+
2639
void "resolve stage from HttpRequest"() {
2740
given:
2841
HttpRequestStageResolver resolver = new HttpRequestStageResolver()

gradle/libs.versions.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ micronaut-validation = "4.2.0"
2525

2626
managed-alexa-ask-sdk = "2.86.0"
2727
managed-aws-java-sdk-v1 = '1.12.595'
28-
managed-aws-java-sdk-v2 = '2.21.29'
28+
managed-aws-java-sdk-v2 = '2.20.162'
2929
managed-aws-lambda = '1.2.3'
3030
managed-aws-lambda-events = '3.11.3'
3131
managed-aws-lambda-java-serialization = '1.1.4'

0 commit comments

Comments
 (0)