Skip to content

NullPointerException if calling Lambda via CloudWatch event #237

@huksley

Description

@huksley
  • Framework version: 1.3
  • Implementations: Spring Boot

Scenario

Adding following event to MyServiceFunction

CheckWebsiteScheduledEvent:
  Type: Schedule
  Properties:
    Schedule: rate(5 minutes)

results in NullPointerException generated when CloudWatch periodically calls Lambda at AwsProxyHttpServletRequestReader.java:48

servletRequest.setAttribute(ALB_CONTEXT_PROPERTY, request.getRequestContext().getElb());

Expected behavior

No NullPointerException in Cloudformation logs

Actual behavior

Actually running Lambda + provide some way to execute code on such event.

Steps to reproduce

Add event to sam.yaml, deploy, observe CloudWatch logstream.

Full log output

2019-02-11 13:54:19.463 ERROR 1 --- [ main] c.a.s.p.internal.LambdaContainerHandler : Error while handling request

java.lang.NullPointerException: null
at com.amazonaws.serverless.proxy.internal.servlet.AwsProxyHttpServletRequestReader.readRequest(AwsProxyHttpServletRequestReader.java:48) ~[aws-serverless-java-container-core-1.3.jar:na]
at com.amazonaws.serverless.proxy.internal.servlet.AwsProxyHttpServletRequestReader.readRequest(AwsProxyHttpServletRequestReader.java:28) ~[aws-serverless-java-container-core-1.3.jar:na]
at com.amazonaws.serverless.proxy.internal.LambdaContainerHandler.proxy(LambdaContainerHandler.java:174) [aws-serverless-java-container-core-1.3.jar:na]
at com.amazonaws.serverless.proxy.internal.LambdaContainerHandler.proxyStream(LambdaContainerHandler.java:209) [aws-serverless-java-container-core-1.3.jar:na]
at my.service.StreamLambdaHandler.handleRequest(StreamLambdaHandler.java:37) [task/:na]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_181]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_181]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_181]
at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_181]
at lambdainternal.EventHandlerLoader$StreamMethodRequestHandler.handleRequest(EventHandlerLoader.java:350) [LambdaSandboxJava-1.0.jar:na]
at lambdainternal.EventHandlerLoader$2.call(EventHandlerLoader.java:888) [LambdaSandboxJava-1.0.jar:na]
at lambdainternal.AWSLambda.startRuntime(AWSLambda.java:293) [LambdaSandboxJava-1.0.jar:na]
at lambdainternal.AWSLambda.<clinit>(AWSLambda.java:64) [LambdaSandboxJava-1.0.jar:na]
at java.lang.Class.forName0(Native Method) [na:1.8.0_181]
at java.lang.Class.forName(Class.java:348) [na:1.8.0_181]
at lambdainternal.LambdaRTEntry.main(LambdaRTEntry.java:104) [LambdaJavaRTEntry-1.0.jar:na]

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions