Open dstepanov opened 4 months ago
Only occurs for async controller methods
I can reproduce it on the benchmark project:
maximum-pool-size: 512
/gradlew micronaut-vertx-pg-client:run
http://localhost:8080/prepare-data-for-test
wrk -H 'Host: localhost' -H 'Accept: application/json,text/html;q=0.9,application/xhtml+xml;q=0.9,application/xml;q=0.8,*/*;q=0.7' -H 'Connection: keep-alive' --latency -d 150 -c 512 --timeout 8 -t 128 "http://localhost:8080/db"
java.lang.NullPointerException: Cannot invoke "io.micronaut.http.MutableHttpResponse.header(java.lang.CharSequence, java.lang.CharSequence)" because "mutableHttpResponse" is null
at benchmark.filter.ServerHeaderFilter.addDateHeader(ServerHeaderFilter.java:28)
at benchmark.filter.$ServerHeaderFilter$Definition$Exec.dispatch(Unknown Source)
at io.micronaut.context.AbstractExecutableMethodsDefinition$DispatchedExecutableMethod.invokeUnsafe(AbstractExecutableMethodsDefinition.java:461)
at io.micronaut.http.filter.MethodFilter.filter0(MethodFilter.java:342)
at io.micronaut.http.filter.MethodFilter.filter(MethodFilter.java:331)
at io.micronaut.http.filter.MethodFilter.processResponseFilter(MethodFilter.java:305)
at io.micronaut.http.filter.FilterRunner.filterResponse(FilterRunner.java:220)
at io.micronaut.http.filter.FilterRunner.lambda$run$1(FilterRunner.java:163)
at io.micronaut.core.execution.CompletableFutureExecutionFlowImpl.lambda$flatMap$0(CompletableFutureExecutionFlowImpl.java:51)
at java.base/java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:1150)
at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510)
at java.base/java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:2194)
at io.vertx.core.Future.lambda$toCompletionStage$3(Future.java:583)
at io.vertx.core.impl.future.FutureImpl$4.onFailure(FutureImpl.java:188)
at io.vertx.core.impl.future.FutureBase.emitFailure(FutureBase.java:81)
at io.vertx.core.impl.future.FutureImpl.tryFail(FutureImpl.java:278)
at io.vertx.core.impl.future.Mapping.onFailure(Mapping.java:45)
Expected Behavior
No exception
Actual Behaviour
Null value is set for the response:
Steps To Reproduce
No response
Environment Information
No response
Example Application
No response
Version
4.4