micronaut-projects / micronaut-core

Micronaut Application Framework
http://micronaut.io
Apache License 2.0
6.03k stars 1.05k forks source link

thrown io.micronaut.http.codec.CodecException does not invoke exception mappers #7786

Open mrwilby opened 2 years ago

mrwilby commented 2 years ago

Expected Behavior

In 1.x, when a CodecException was thrown, exception mappers were invoked. This is the expected behavior.

Actual Behaviour

In 3.5.3, when CodecException is thrown, the exception mappers are never invoked, and instead io.micronaut.http.server.RouteExecutor#createDefaultErrorResponse is invoked.

Steps To Reproduce

@Controller
public class ExceptionMapperAppController {
    @Post(uri = "/exceptions/codec", produces = MediaType.APPLICATION_JSON)
    public ExceptionMapperAppResponse throwCodecException(@Body ExceptionMapperAppRequest request) {

        ExceptionMapperAppResponse r = new ExceptionMapperAppResponse(request.getValue());
        return r;
    }
}

@Valid
@Validated
@Introspected
public class ExceptionMapperAppResponse {

    private final String value;

    @JsonCreator
    public ExceptionMapperAppResponse(@JsonProperty("value") String value) {
        this.value = value;
    }

    @JsonProperty("value")
    public String getValue() {

        if (this.value.equalsIgnoreCase("error")) {
            throw new RuntimeException("Triggering JSON exception");
        }

        return this.value;
    }
}

@Client(value = "/", errorType = PlatformErrorMessage.class)
@Requires(env = "exception-mapper-test")
public interface ExceptionMapperAppClient {
    @Post("/exceptions/codec")
    @Consumes(MediaType.APPLICATION_JSON)
    ExceptionMapperAppResponse throwCodecException(@Body ExceptionMapperAppRequest request);
}

@MicronautTest(environments = "exception-mapper-test")
public class ExceptionMapperAppTest {

    @Test
    public void testCodecException() {

        try {
            ExceptionMapperAppRequest request = new ExceptionMapperAppRequest("error");
            this.client.throwCodecException(request);
            Assertions.fail();
        }
        catch (HttpClientResponseException e) {
            Assertions.assertEquals(HttpStatus.BAD_REQUEST, e.getStatus());
            checkForPlatformErrorMessage(InternalHttpResponseStatus.BAD_REQUEST, e, "Invalid request parameters");
        }
        catch (Throwable t) {
            Assertions.fail();
        }
    }

Environment Information

No response

Example Application

No response

Version

3.5.3

mrwilby commented 2 years ago

Call stack when CodecException is thrown:

encode:220, MapperMediaTypeCodec (io.micronaut.json.codec)
encode:268, MapperMediaTypeCodec (io.micronaut.json.codec)
encodeBodyAsByteBuf:1422, RoutingInBoundHandler (io.micronaut.http.server.netty)
encodeBodyWithCodec:1362, RoutingInBoundHandler (io.micronaut.http.server.netty)
encodeResponseBody:1177, RoutingInBoundHandler (io.micronaut.http.server.netty)
encodeHttpResponse:1020, RoutingInBoundHandler (io.micronaut.http.server.netty)
access$000:149, RoutingInBoundHandler (io.micronaut.http.server.netty)
doOnNext:608, RoutingInBoundHandler$2 (io.micronaut.http.server.netty)
doOnNext:600, RoutingInBoundHandler$2 (io.micronaut.http.server.netty)
onNext:56, CompletionAwareSubscriber (io.micronaut.core.async.subscriber)
onNext:89, StrictSubscriber (reactor.core.publisher)
onNext:57, ReactorSubscriber (io.micronaut.reactive.reactor.instrument)
onNext:107, FluxContextWrite$ContextWriteSubscriber (reactor.core.publisher)
onNext:57, ReactorSubscriber (io.micronaut.reactive.reactor.instrument)
onNext:79, FluxOnErrorResume$ResumeSubscriber (reactor.core.publisher)
onNext:57, ReactorSubscriber (io.micronaut.reactive.reactor.instrument)
drainLoop:712, FluxFlatMap$FlatMapMain (reactor.core.publisher)
drain:588, FluxFlatMap$FlatMapMain (reactor.core.publisher)
onSubscribe:955, FluxFlatMap$FlatMapInner (reactor.core.publisher)
onSubscribe:50, ReactorSubscriber (io.micronaut.reactive.reactor.instrument)
subscribe:68, FluxJust (reactor.core.publisher)
subscribe:8469, Flux (reactor.core.publisher)
onNext:426, FluxFlatMap$FlatMapMain (reactor.core.publisher)
onNext:57, ReactorSubscriber (io.micronaut.reactive.reactor.instrument)
onNext:45, HalfSerializer (io.reactivex.internal.util)
onNext:97, StrictSubscriber (io.reactivex.internal.subscribers)
onNext:59, RxInstrumentedSubscriber (io.micronaut.rxjava2.instrument)
onNext:92, FlowableDoOnEach$DoOnEachSubscriber (io.reactivex.internal.operators.flowable)
onNext:59, RxInstrumentedSubscriber (io.micronaut.rxjava2.instrument)
onNext:89, StrictSubscriber (reactor.core.publisher)
onNext:57, ReactorSubscriber (io.micronaut.reactive.reactor.instrument)
onNext:79, FluxOnErrorResume$ResumeSubscriber (reactor.core.publisher)
onNext:57, ReactorSubscriber (io.micronaut.reactive.reactor.instrument)
drainLoop:712, FluxFlatMap$FlatMapMain (reactor.core.publisher)
drain:588, FluxFlatMap$FlatMapMain (reactor.core.publisher)
onSubscribe:955, FluxFlatMap$FlatMapInner (reactor.core.publisher)
onSubscribe:50, ReactorSubscriber (io.micronaut.reactive.reactor.instrument)
subscribe:68, FluxJust (reactor.core.publisher)
subscribe:8469, Flux (reactor.core.publisher)
onNext:426, FluxFlatMap$FlatMapMain (reactor.core.publisher)
onNext:57, ReactorSubscriber (io.micronaut.reactive.reactor.instrument)
onNext:79, FluxOnErrorResume$ResumeSubscriber (reactor.core.publisher)
onNext:57, ReactorSubscriber (io.micronaut.reactive.reactor.instrument)
drainLoop:712, FluxFlatMap$FlatMapMain (reactor.core.publisher)
drain:588, FluxFlatMap$FlatMapMain (reactor.core.publisher)
onSubscribe:955, FluxFlatMap$FlatMapInner (reactor.core.publisher)
onSubscribe:50, ReactorSubscriber (io.micronaut.reactive.reactor.instrument)
subscribe:68, FluxJust (reactor.core.publisher)
subscribe:8469, Flux (reactor.core.publisher)
onNext:426, FluxFlatMap$FlatMapMain (reactor.core.publisher)
onNext:57, ReactorSubscriber (io.micronaut.reactive.reactor.instrument)
onNext:74, FluxSwitchIfEmpty$SwitchIfEmptySubscriber (reactor.core.publisher)
onNext:57, ReactorSubscriber (io.micronaut.reactive.reactor.instrument)
onNext:82, MonoNext$NextSubscriber (reactor.core.publisher)
onNext:57, ReactorSubscriber (io.micronaut.reactive.reactor.instrument)
onNext:74, FluxSwitchIfEmpty$SwitchIfEmptySubscriber (reactor.core.publisher)
onNext:57, ReactorSubscriber (io.micronaut.reactive.reactor.instrument)
onNext:250, MonoFlatMapMany$FlatMapManyInner (reactor.core.publisher)
onNext:57, ReactorSubscriber (io.micronaut.reactive.reactor.instrument)
onNext:79, FluxOnErrorResume$ResumeSubscriber (reactor.core.publisher)
onNext:57, ReactorSubscriber (io.micronaut.reactive.reactor.instrument)
drainLoop:712, FluxFlatMap$FlatMapMain (reactor.core.publisher)
drain:588, FluxFlatMap$FlatMapMain (reactor.core.publisher)
onSubscribe:955, FluxFlatMap$FlatMapInner (reactor.core.publisher)
onSubscribe:50, ReactorSubscriber (io.micronaut.reactive.reactor.instrument)
subscribe:68, FluxJust (reactor.core.publisher)
subscribe:8469, Flux (reactor.core.publisher)
onNext:426, FluxFlatMap$FlatMapMain (reactor.core.publisher)
onNext:57, ReactorSubscriber (io.micronaut.reactive.reactor.instrument)
tryEmit:543, FluxFlatMap$FlatMapMain (reactor.core.publisher)
onNext:984, FluxFlatMap$FlatMapInner (reactor.core.publisher)
onNext:57, ReactorSubscriber (io.micronaut.reactive.reactor.instrument)
onNext:200, FluxPeek$PeekSubscriber (reactor.core.publisher)
onNext:57, ReactorSubscriber (io.micronaut.reactive.reactor.instrument)
request:2398, Operators$ScalarSubscription (reactor.core.publisher)
request:138, FluxPeek$PeekSubscriber (reactor.core.publisher)
onSubscribe:964, FluxFlatMap$FlatMapInner (reactor.core.publisher)
onSubscribe:50, ReactorSubscriber (io.micronaut.reactive.reactor.instrument)
onSubscribe:171, FluxPeek$PeekSubscriber (reactor.core.publisher)
onSubscribe:50, ReactorSubscriber (io.micronaut.reactive.reactor.instrument)
subscribe:55, MonoJust (reactor.core.publisher)
subscribe:62, InternalFluxOperator (reactor.core.publisher)
subscribe:54, FluxDefer (reactor.core.publisher)
subscribe:62, InternalFluxOperator (reactor.core.publisher)
subscribe:57, FluxDeferContextual (reactor.core.publisher)
subscribe:8469, Flux (reactor.core.publisher)
onNext:426, FluxFlatMap$FlatMapMain (reactor.core.publisher)
onNext:57, ReactorSubscriber (io.micronaut.reactive.reactor.instrument)
success:172, MonoCreate$DefaultMonoSink (reactor.core.publisher)
doOnComplete:953, RoutingInBoundHandler$4 (io.micronaut.http.server.netty)
onComplete:79, CompletionAwareSubscriber (io.micronaut.core.async.subscriber)
doOnComplete:136, JsonContentProcessor$1 (io.micronaut.http.server.netty.jackson)
onComplete:79, CompletionAwareSubscriber (io.micronaut.core.async.subscriber)
accept:-1, 964385373 (io.micronaut.core.async.processor.SingleThreadedBufferingProcessor$$Lambda$974)
ifPresent:159, Optional (java.util)
doOnComplete:48, SingleThreadedBufferingProcessor (io.micronaut.core.async.processor)
doOnComplete:94, JacksonCoreProcessor (io.micronaut.jackson.core.parser)
onComplete:71, SingleThreadedBufferingSubscriber (io.micronaut.core.async.subscriber)
doOnComplete:161, JsonContentProcessor (io.micronaut.http.server.netty.jackson)
onComplete:79, CompletionAwareSubscriber (io.micronaut.core.async.subscriber)
publishMessage:383, HandlerPublisher (io.micronaut.http.netty.reactive)
flushBuffer:470, HandlerPublisher (io.micronaut.http.netty.reactive)
publishMessageLater:360, HandlerPublisher (io.micronaut.http.netty.reactive)
complete:423, HandlerPublisher (io.micronaut.http.netty.reactive)
handlerRemoved:418, HandlerPublisher (io.micronaut.http.netty.reactive)
callHandlerRemoved:946, AbstractChannelHandlerContext (io.netty.channel)
callHandlerRemoved0:637, DefaultChannelPipeline (io.netty.channel)
remove:477, DefaultChannelPipeline (io.netty.channel)
remove:423, DefaultChannelPipeline (io.netty.channel)
removeHandlerIfActive:483, HttpStreamsHandler (io.micronaut.http.netty.stream)
handleReadHttpContent:319, HttpStreamsHandler (io.micronaut.http.netty.stream)
channelRead:282, HttpStreamsHandler (io.micronaut.http.netty.stream)
channelRead:134, HttpStreamsServerHandler (io.micronaut.http.netty.stream)
invokeChannelRead:379, AbstractChannelHandlerContext (io.netty.channel)
invokeChannelRead:365, AbstractChannelHandlerContext (io.netty.channel)
fireChannelRead:357, AbstractChannelHandlerContext (io.netty.channel)
channelRead:93, ChannelInboundHandlerAdapter (io.netty.channel)
channelRead:99, WebSocketServerExtensionHandler (io.netty.handler.codec.http.websocketx.extensions)
invokeChannelRead:379, AbstractChannelHandlerContext (io.netty.channel)
invokeChannelRead:365, AbstractChannelHandlerContext (io.netty.channel)
fireChannelRead:357, AbstractChannelHandlerContext (io.netty.channel)
channelRead:103, MessageToMessageDecoder (io.netty.handler.codec)
invokeChannelRead:379, AbstractChannelHandlerContext (io.netty.channel)
invokeChannelRead:365, AbstractChannelHandlerContext (io.netty.channel)
fireChannelRead:357, AbstractChannelHandlerContext (io.netty.channel)
channelRead:103, MessageToMessageDecoder (io.netty.handler.codec)
channelRead:111, MessageToMessageCodec (io.netty.handler.codec)
invokeChannelRead:379, AbstractChannelHandlerContext (io.netty.channel)
invokeChannelRead:365, AbstractChannelHandlerContext (io.netty.channel)
fireChannelRead:357, AbstractChannelHandlerContext (io.netty.channel)
channelRead:93, ChannelInboundHandlerAdapter (io.netty.channel)
channelRead:64, HttpServerKeepAliveHandler (io.netty.handler.codec.http)
invokeChannelRead:379, AbstractChannelHandlerContext (io.netty.channel)
invokeChannelRead:365, AbstractChannelHandlerContext (io.netty.channel)
fireChannelRead:357, AbstractChannelHandlerContext (io.netty.channel)
dequeue:200, FlowControlHandler (io.netty.handler.flow)
read:139, FlowControlHandler (io.netty.handler.flow)
invokeRead:686, AbstractChannelHandlerContext (io.netty.channel)
read:671, AbstractChannelHandlerContext (io.netty.channel)
requestDemand:165, HandlerPublisher (io.micronaut.http.netty.reactive)
requestDemand:273, HttpStreamsHandler$2 (io.micronaut.http.netty.stream)
receivedDemand:556, HandlerPublisher$ChannelSubscription (io.micronaut.http.netty.reactive)
lambda$request$0:494, HandlerPublisher$ChannelSubscription (io.micronaut.http.netty.reactive)
run:-1, 172773549 (io.micronaut.http.netty.reactive.HandlerPublisher$ChannelSubscription$$Lambda$972)
runTask$$$capture:174, AbstractEventExecutor (io.netty.util.concurrent)
runTask:-1, AbstractEventExecutor (io.netty.util.concurrent)
 - Async stack trace
addTask:-1, SingleThreadEventExecutor (io.netty.util.concurrent)
execute:834, SingleThreadEventExecutor (io.netty.util.concurrent)
execute0:825, SingleThreadEventExecutor (io.netty.util.concurrent)
execute:815, SingleThreadEventExecutor (io.netty.util.concurrent)
request:494, HandlerPublisher$ChannelSubscription (io.micronaut.http.netty.reactive)
flushBuffer:203, SingleThreadedBufferingSubscriber (io.micronaut.core.async.subscriber)
access$100:32, SingleThreadedBufferingSubscriber (io.micronaut.core.async.subscriber)
processDemand:281, SingleThreadedBufferingSubscriber$DownstreamSubscription (io.micronaut.core.async.subscriber)
request:256, SingleThreadedBufferingSubscriber$DownstreamSubscription (io.micronaut.core.async.subscriber)
request:107, JsonContentProcessor$1$1 (io.micronaut.http.server.netty.jackson)
doOnSubscribe:929, RoutingInBoundHandler$4 (io.micronaut.http.server.netty)
onSubscribe:42, CompletionAwareSubscriber (io.micronaut.core.async.subscriber)
doOnSubscribe:121, JsonContentProcessor$1 (io.micronaut.http.server.netty.jackson)
onSubscribe:42, CompletionAwareSubscriber (io.micronaut.core.async.subscriber)
provideDownstreamSubscription:166, SingleThreadedBufferingSubscriber (io.micronaut.core.async.subscriber)
ifPresent:159, Optional (java.util)
doOnSubscribe:61, SingleThreadedBufferingProcessor (io.micronaut.core.async.processor)
onSubscribe:52, SingleThreadedBufferingSubscriber (io.micronaut.core.async.subscriber)
doOnSubscribe:140, JsonContentProcessor (io.micronaut.http.server.netty.jackson)
doOnSubscribe:134, SingleSubscriberProcessor (io.micronaut.core.async.processor)
onSubscribe:42, CompletionAwareSubscriber (io.micronaut.core.async.subscriber)
provideSubscriber:230, HandlerPublisher (io.micronaut.http.netty.reactive)
lambda$subscribe$0:131, HandlerPublisher (io.micronaut.http.netty.reactive)
runTask$$$capture:174, AbstractEventExecutor (io.netty.util.concurrent)
runTask:-1, AbstractEventExecutor (io.netty.util.concurrent)
 - Async stack trace
addTask:-1, SingleThreadEventExecutor (io.netty.util.concurrent)
execute:834, SingleThreadEventExecutor (io.netty.util.concurrent)
execute0:825, SingleThreadEventExecutor (io.netty.util.concurrent)
execute:815, SingleThreadEventExecutor (io.netty.util.concurrent)
subscribe:131, HandlerPublisher (io.micronaut.http.netty.reactive)
subscribe:55, DelegateStreamedHttpRequest (io.micronaut.http.netty.stream)
doSubscribe:66, AbstractHttpContentProcessor (io.micronaut.http.server.netty)
subscribe:57, SingleSubscriberProcessor (io.micronaut.core.async.processor)
lambda$handleRouteMatch$3:586, RoutingInBoundHandler (io.micronaut.http.server.netty)
subscribe:58, MonoCreate (reactor.core.publisher)
subscribe:8469, Flux (reactor.core.publisher)
onNext:195, MonoFlatMapMany$FlatMapManyMain (reactor.core.publisher)
onNext:57, ReactorSubscriber (io.micronaut.reactive.reactor.instrument)
onNext:82, MonoNext$NextSubscriber (reactor.core.publisher)
onNext:57, ReactorSubscriber (io.micronaut.reactive.reactor.instrument)
innerNext:282, FluxConcatMap$ConcatMapImmediate (reactor.core.publisher)
onNext:863, FluxConcatMap$ConcatMapInner (reactor.core.publisher)
onNext:57, ReactorSubscriber (io.micronaut.reactive.reactor.instrument)
onNext:180, MonoPeekTerminal$MonoTerminalPeekSubscriber (reactor.core.publisher)
onNext:57, ReactorSubscriber (io.micronaut.reactive.reactor.instrument)
onNext:113, FluxFilter$FilterSubscriber (reactor.core.publisher)
onNext:57, ReactorSubscriber (io.micronaut.reactive.reactor.instrument)
onNext:101, FluxDefaultIfEmpty$DefaultIfEmptySubscriber (reactor.core.publisher)
onNext:57, ReactorSubscriber (io.micronaut.reactive.reactor.instrument)
onNext:137, FluxHide$SuppressFuseableSubscriber (reactor.core.publisher)
request:2398, Operators$ScalarSubscription (reactor.core.publisher)
request:152, FluxHide$SuppressFuseableSubscriber (reactor.core.publisher)
request:77, FluxDefaultIfEmpty$DefaultIfEmptySubscriber (reactor.core.publisher)
request:186, FluxFilter$FilterSubscriber (reactor.core.publisher)
request:139, MonoPeekTerminal$MonoTerminalPeekSubscriber (reactor.core.publisher)
set:2194, Operators$MultiSubscriptionSubscriber (reactor.core.publisher)
onSubscribe:2068, Operators$MultiSubscriptionSubscriber (reactor.core.publisher)
onSubscribe:50, ReactorSubscriber (io.micronaut.reactive.reactor.instrument)
onSubscribe:152, MonoPeekTerminal$MonoTerminalPeekSubscriber (reactor.core.publisher)
onSubscribe:50, ReactorSubscriber (io.micronaut.reactive.reactor.instrument)
onSubscribe:85, FluxFilter$FilterSubscriber (reactor.core.publisher)
onSubscribe:50, ReactorSubscriber (io.micronaut.reactive.reactor.instrument)
onSubscribe:91, FluxDefaultIfEmpty$DefaultIfEmptySubscriber (reactor.core.publisher)
onSubscribe:50, ReactorSubscriber (io.micronaut.reactive.reactor.instrument)
onSubscribe:122, FluxHide$SuppressFuseableSubscriber (reactor.core.publisher)
subscribe:55, MonoJust (reactor.core.publisher)
subscribe:4400, Mono (reactor.core.publisher)
drain:451, FluxConcatMap$ConcatMapImmediate (reactor.core.publisher)
onSubscribe:219, FluxConcatMap$ConcatMapImmediate (reactor.core.publisher)
onSubscribe:50, ReactorSubscriber (io.micronaut.reactive.reactor.instrument)
subscribe:165, FluxIterable (reactor.core.publisher)
subscribe:87, FluxIterable (reactor.core.publisher)
subscribe:62, InternalFluxOperator (reactor.core.publisher)
subscribe:54, FluxDefer (reactor.core.publisher)
subscribe:4400, Mono (reactor.core.publisher)
onComplete:82, FluxSwitchIfEmpty$SwitchIfEmptySubscriber (reactor.core.publisher)
onComplete:71, ReactorSubscriber (io.micronaut.reactive.reactor.instrument)
onComplete:181, MonoFlatMap$FlatMapMain (reactor.core.publisher)
onComplete:71, ReactorSubscriber (io.micronaut.reactive.reactor.instrument)
onComplete:102, MonoNext$NextSubscriber (reactor.core.publisher)
onComplete:71, ReactorSubscriber (io.micronaut.reactive.reactor.instrument)
checkTerminated:846, FluxFlatMap$FlatMapMain (reactor.core.publisher)
drainLoop:608, FluxFlatMap$FlatMapMain (reactor.core.publisher)
drain:588, FluxFlatMap$FlatMapMain (reactor.core.publisher)
onComplete:465, FluxFlatMap$FlatMapMain (reactor.core.publisher)
onComplete:71, ReactorSubscriber (io.micronaut.reactive.reactor.instrument)
slowPath:294, FluxIterable$IterableSubscription (reactor.core.publisher)
request:230, FluxIterable$IterableSubscription (reactor.core.publisher)
onSubscribe:371, FluxFlatMap$FlatMapMain (reactor.core.publisher)
onSubscribe:50, ReactorSubscriber (io.micronaut.reactive.reactor.instrument)
subscribe:165, FluxIterable (reactor.core.publisher)
subscribe:87, FluxIterable (reactor.core.publisher)
subscribe:8469, Flux (reactor.core.publisher)
subscribeActual:29, FlowableFromPublisher (io.reactivex.internal.operators.flowable)
subscribe:14935, Flowable (io.reactivex)
subscribe:14882, Flowable (io.reactivex)
subscribeActual:57, RxInstrumentedFlowable (io.micronaut.rxjava2.instrument)
subscribe:14935, Flowable (io.reactivex)
subscribeActual:50, FlowableDoOnEach (io.reactivex.internal.operators.flowable)
subscribe:14935, Flowable (io.reactivex)
subscribe:14885, Flowable (io.reactivex)
subscribe:67, FluxSource (reactor.core.publisher)
subscribe:8469, Flux (reactor.core.publisher)
handleRouteMatch:600, RoutingInBoundHandler (io.micronaut.http.server.netty)
channelRead0:456, RoutingInBoundHandler (io.micronaut.http.server.netty)
channelRead0:146, RoutingInBoundHandler (io.micronaut.http.server.netty)
channelRead:99, SimpleChannelInboundHandler (io.netty.channel)
invokeChannelRead:379, AbstractChannelHandlerContext (io.netty.channel)
invokeChannelRead:365, AbstractChannelHandlerContext (io.netty.channel)
fireChannelRead:357, AbstractChannelHandlerContext (io.netty.channel)
channelRead:102, SimpleChannelInboundHandler (io.netty.channel)
invokeChannelRead:379, AbstractChannelHandlerContext (io.netty.channel)
invokeChannelRead:365, AbstractChannelHandlerContext (io.netty.channel)
fireChannelRead:357, AbstractChannelHandlerContext (io.netty.channel)
channelRead:103, MessageToMessageDecoder (io.netty.handler.codec)
invokeChannelRead:379, AbstractChannelHandlerContext (io.netty.channel)
invokeChannelRead:365, AbstractChannelHandlerContext (io.netty.channel)
fireChannelRead:357, AbstractChannelHandlerContext (io.netty.channel)
channelRead:325, HandlerPublisher (io.micronaut.http.netty.reactive)
invokeChannelRead:379, AbstractChannelHandlerContext (io.netty.channel)
invokeChannelRead:365, AbstractChannelHandlerContext (io.netty.channel)
fireChannelRead:357, AbstractChannelHandlerContext (io.netty.channel)
channelRead:279, HttpStreamsHandler (io.micronaut.http.netty.stream)
channelRead:134, HttpStreamsServerHandler (io.micronaut.http.netty.stream)
invokeChannelRead:379, AbstractChannelHandlerContext (io.netty.channel)
invokeChannelRead:365, AbstractChannelHandlerContext (io.netty.channel)
fireChannelRead:357, AbstractChannelHandlerContext (io.netty.channel)
channelRead:93, ChannelInboundHandlerAdapter (io.netty.channel)
channelRead:99, WebSocketServerExtensionHandler (io.netty.handler.codec.http.websocketx.extensions)
invokeChannelRead:379, AbstractChannelHandlerContext (io.netty.channel)
invokeChannelRead:365, AbstractChannelHandlerContext (io.netty.channel)
fireChannelRead:357, AbstractChannelHandlerContext (io.netty.channel)
channelRead:103, MessageToMessageDecoder (io.netty.handler.codec)
invokeChannelRead:379, AbstractChannelHandlerContext (io.netty.channel)
invokeChannelRead:365, AbstractChannelHandlerContext (io.netty.channel)
fireChannelRead:357, AbstractChannelHandlerContext (io.netty.channel)
channelRead:103, MessageToMessageDecoder (io.netty.handler.codec)
channelRead:111, MessageToMessageCodec (io.netty.handler.codec)
invokeChannelRead:379, AbstractChannelHandlerContext (io.netty.channel)
invokeChannelRead:365, AbstractChannelHandlerContext (io.netty.channel)
fireChannelRead:357, AbstractChannelHandlerContext (io.netty.channel)
channelRead:93, ChannelInboundHandlerAdapter (io.netty.channel)
channelRead:64, HttpServerKeepAliveHandler (io.netty.handler.codec.http)
invokeChannelRead:379, AbstractChannelHandlerContext (io.netty.channel)
invokeChannelRead:365, AbstractChannelHandlerContext (io.netty.channel)
fireChannelRead:357, AbstractChannelHandlerContext (io.netty.channel)
dequeue:200, FlowControlHandler (io.netty.handler.flow)
channelRead:162, FlowControlHandler (io.netty.handler.flow)
invokeChannelRead:379, AbstractChannelHandlerContext (io.netty.channel)
invokeChannelRead:365, AbstractChannelHandlerContext (io.netty.channel)
fireChannelRead:357, AbstractChannelHandlerContext (io.netty.channel)
fireChannelRead:436, CombinedChannelDuplexHandler$DelegatingChannelHandlerContext (io.netty.channel)
fireChannelRead:327, ByteToMessageDecoder (io.netty.handler.codec)
fireChannelRead:314, ByteToMessageDecoder (io.netty.handler.codec)
callDecode:435, ByteToMessageDecoder (io.netty.handler.codec)
channelRead:279, ByteToMessageDecoder (io.netty.handler.codec)
channelRead:251, CombinedChannelDuplexHandler (io.netty.channel)
invokeChannelRead:379, AbstractChannelHandlerContext (io.netty.channel)
invokeChannelRead:365, AbstractChannelHandlerContext (io.netty.channel)
fireChannelRead:357, AbstractChannelHandlerContext (io.netty.channel)
channelRead:286, IdleStateHandler (io.netty.handler.timeout)
invokeChannelRead:379, AbstractChannelHandlerContext (io.netty.channel)
invokeChannelRead:365, AbstractChannelHandlerContext (io.netty.channel)
fireChannelRead:357, AbstractChannelHandlerContext (io.netty.channel)
channelRead:1410, DefaultChannelPipeline$HeadContext (io.netty.channel)
invokeChannelRead:379, AbstractChannelHandlerContext (io.netty.channel)
invokeChannelRead:365, AbstractChannelHandlerContext (io.netty.channel)
fireChannelRead:919, DefaultChannelPipeline (io.netty.channel)
read:166, AbstractNioByteChannel$NioByteUnsafe (io.netty.channel.nio)
processSelectedKey:722, NioEventLoop (io.netty.channel.nio)
processSelectedKeysOptimized:658, NioEventLoop (io.netty.channel.nio)
processSelectedKeys:584, NioEventLoop (io.netty.channel.nio)
run:496, NioEventLoop (io.netty.channel.nio)
run:995, SingleThreadEventExecutor$4 (io.netty.util.concurrent)
run:74, ThreadExecutorMap$2 (io.netty.util.internal)
run:30, FastThreadLocalRunnable (io.netty.util.concurrent)
run:750, Thread (java.lang)

e is of type JacksonMappingException

    @Override
    public <T> void encode(Argument<T> type, T object, OutputStream outputStream) throws CodecException {
        try {
            getJsonMapper().writeValue(outputStream, type, object);
        } catch (IOException e) {
            throw new CodecException("Error encoding object [" + object + "] to JSON: " + e.getMessage(), e);
        }
    }

That then (only, and unexpectedly) invokes RouteExecutor:

createDefaultErrorResponse:311, RouteExecutor (io.micronaut.http.server)
doOnError:621, RoutingInBoundHandler$2 (io.micronaut.http.server.netty)
onError:67, CompletionAwareSubscriber (io.micronaut.core.async.subscriber)
onNext:58, CompletionAwareSubscriber (io.micronaut.core.async.subscriber)
onNext:89, StrictSubscriber (reactor.core.publisher)
onNext:57, ReactorSubscriber (io.micronaut.reactive.reactor.instrument)
onNext:107, FluxContextWrite$ContextWriteSubscriber (reactor.core.publisher)
onNext:57, ReactorSubscriber (io.micronaut.reactive.reactor.instrument)
onNext:79, FluxOnErrorResume$ResumeSubscriber (reactor.core.publisher)
onNext:57, ReactorSubscriber (io.micronaut.reactive.reactor.instrument)
drainLoop:712, FluxFlatMap$FlatMapMain (reactor.core.publisher)
drain:588, FluxFlatMap$FlatMapMain (reactor.core.publisher)
onSubscribe:955, FluxFlatMap$FlatMapInner (reactor.core.publisher)
onSubscribe:50, ReactorSubscriber (io.micronaut.reactive.reactor.instrument)
subscribe:68, FluxJust (reactor.core.publisher)
subscribe:8469, Flux (reactor.core.publisher)
onNext:426, FluxFlatMap$FlatMapMain (reactor.core.publisher)
onNext:57, ReactorSubscriber (io.micronaut.reactive.reactor.instrument)
onNext:45, HalfSerializer (io.reactivex.internal.util)
onNext:97, StrictSubscriber (io.reactivex.internal.subscribers)
onNext:59, RxInstrumentedSubscriber (io.micronaut.rxjava2.instrument)
onNext:92, FlowableDoOnEach$DoOnEachSubscriber (io.reactivex.internal.operators.flowable)
onNext:59, RxInstrumentedSubscriber (io.micronaut.rxjava2.instrument)
onNext:89, StrictSubscriber (reactor.core.publisher)
onNext:57, ReactorSubscriber (io.micronaut.reactive.reactor.instrument)
onNext:79, FluxOnErrorResume$ResumeSubscriber (reactor.core.publisher)
onNext:57, ReactorSubscriber (io.micronaut.reactive.reactor.instrument)
drainLoop:712, FluxFlatMap$FlatMapMain (reactor.core.publisher)
drain:588, FluxFlatMap$FlatMapMain (reactor.core.publisher)
onSubscribe:955, FluxFlatMap$FlatMapInner (reactor.core.publisher)
onSubscribe:50, ReactorSubscriber (io.micronaut.reactive.reactor.instrument)
subscribe:68, FluxJust (reactor.core.publisher)
subscribe:8469, Flux (reactor.core.publisher)
onNext:426, FluxFlatMap$FlatMapMain (reactor.core.publisher)
onNext:57, ReactorSubscriber (io.micronaut.reactive.reactor.instrument)
onNext:79, FluxOnErrorResume$ResumeSubscriber (reactor.core.publisher)
onNext:57, ReactorSubscriber (io.micronaut.reactive.reactor.instrument)
drainLoop:712, FluxFlatMap$FlatMapMain (reactor.core.publisher)
drain:588, FluxFlatMap$FlatMapMain (reactor.core.publisher)
onSubscribe:955, FluxFlatMap$FlatMapInner (reactor.core.publisher)
onSubscribe:50, ReactorSubscriber (io.micronaut.reactive.reactor.instrument)
subscribe:68, FluxJust (reactor.core.publisher)
subscribe:8469, Flux (reactor.core.publisher)
onNext:426, FluxFlatMap$FlatMapMain (reactor.core.publisher)
onNext:57, ReactorSubscriber (io.micronaut.reactive.reactor.instrument)
onNext:74, FluxSwitchIfEmpty$SwitchIfEmptySubscriber (reactor.core.publisher)
onNext:57, ReactorSubscriber (io.micronaut.reactive.reactor.instrument)
onNext:82, MonoNext$NextSubscriber (reactor.core.publisher)
onNext:57, ReactorSubscriber (io.micronaut.reactive.reactor.instrument)
onNext:74, FluxSwitchIfEmpty$SwitchIfEmptySubscriber (reactor.core.publisher)
onNext:57, ReactorSubscriber (io.micronaut.reactive.reactor.instrument)
onNext:250, MonoFlatMapMany$FlatMapManyInner (reactor.core.publisher)
onNext:57, ReactorSubscriber (io.micronaut.reactive.reactor.instrument)
onNext:79, FluxOnErrorResume$ResumeSubscriber (reactor.core.publisher)
onNext:57, ReactorSubscriber (io.micronaut.reactive.reactor.instrument)
drainLoop:712, FluxFlatMap$FlatMapMain (reactor.core.publisher)
drain:588, FluxFlatMap$FlatMapMain (reactor.core.publisher)
onSubscribe:955, FluxFlatMap$FlatMapInner (reactor.core.publisher)
onSubscribe:50, ReactorSubscriber (io.micronaut.reactive.reactor.instrument)
subscribe:68, FluxJust (reactor.core.publisher)
subscribe:8469, Flux (reactor.core.publisher)
onNext:426, FluxFlatMap$FlatMapMain (reactor.core.publisher)
onNext:57, ReactorSubscriber (io.micronaut.reactive.reactor.instrument)
tryEmit:543, FluxFlatMap$FlatMapMain (reactor.core.publisher)
onNext:984, FluxFlatMap$FlatMapInner (reactor.core.publisher)
onNext:57, ReactorSubscriber (io.micronaut.reactive.reactor.instrument)
onNext:200, FluxPeek$PeekSubscriber (reactor.core.publisher)
onNext:57, ReactorSubscriber (io.micronaut.reactive.reactor.instrument)
request:2398, Operators$ScalarSubscription (reactor.core.publisher)
request:138, FluxPeek$PeekSubscriber (reactor.core.publisher)
onSubscribe:964, FluxFlatMap$FlatMapInner (reactor.core.publisher)
onSubscribe:50, ReactorSubscriber (io.micronaut.reactive.reactor.instrument)
onSubscribe:171, FluxPeek$PeekSubscriber (reactor.core.publisher)
onSubscribe:50, ReactorSubscriber (io.micronaut.reactive.reactor.instrument)
subscribe:55, MonoJust (reactor.core.publisher)
subscribe:62, InternalFluxOperator (reactor.core.publisher)
subscribe:54, FluxDefer (reactor.core.publisher)
subscribe:62, InternalFluxOperator (reactor.core.publisher)
subscribe:57, FluxDeferContextual (reactor.core.publisher)
subscribe:8469, Flux (reactor.core.publisher)
onNext:426, FluxFlatMap$FlatMapMain (reactor.core.publisher)
onNext:57, ReactorSubscriber (io.micronaut.reactive.reactor.instrument)
success:172, MonoCreate$DefaultMonoSink (reactor.core.publisher)
doOnComplete:953, RoutingInBoundHandler$4 (io.micronaut.http.server.netty)
onComplete:79, CompletionAwareSubscriber (io.micronaut.core.async.subscriber)
doOnComplete:136, JsonContentProcessor$1 (io.micronaut.http.server.netty.jackson)
onComplete:79, CompletionAwareSubscriber (io.micronaut.core.async.subscriber)
accept:-1, 964385373 (io.micronaut.core.async.processor.SingleThreadedBufferingProcessor$$Lambda$974)
ifPresent:159, Optional (java.util)
doOnComplete:48, SingleThreadedBufferingProcessor (io.micronaut.core.async.processor)
doOnComplete:94, JacksonCoreProcessor (io.micronaut.jackson.core.parser)
onComplete:71, SingleThreadedBufferingSubscriber (io.micronaut.core.async.subscriber)
doOnComplete:161, JsonContentProcessor (io.micronaut.http.server.netty.jackson)
onComplete:79, CompletionAwareSubscriber (io.micronaut.core.async.subscriber)
publishMessage:383, HandlerPublisher (io.micronaut.http.netty.reactive)
flushBuffer:470, HandlerPublisher (io.micronaut.http.netty.reactive)
publishMessageLater:360, HandlerPublisher (io.micronaut.http.netty.reactive)
complete:423, HandlerPublisher (io.micronaut.http.netty.reactive)
handlerRemoved:418, HandlerPublisher (io.micronaut.http.netty.reactive)
callHandlerRemoved:946, AbstractChannelHandlerContext (io.netty.channel)
callHandlerRemoved0:637, DefaultChannelPipeline (io.netty.channel)
remove:477, DefaultChannelPipeline (io.netty.channel)
remove:423, DefaultChannelPipeline (io.netty.channel)
removeHandlerIfActive:483, HttpStreamsHandler (io.micronaut.http.netty.stream)
handleReadHttpContent:319, HttpStreamsHandler (io.micronaut.http.netty.stream)
channelRead:282, HttpStreamsHandler (io.micronaut.http.netty.stream)
channelRead:134, HttpStreamsServerHandler (io.micronaut.http.netty.stream)
invokeChannelRead:379, AbstractChannelHandlerContext (io.netty.channel)
invokeChannelRead:365, AbstractChannelHandlerContext (io.netty.channel)
fireChannelRead:357, AbstractChannelHandlerContext (io.netty.channel)
channelRead:93, ChannelInboundHandlerAdapter (io.netty.channel)
channelRead:99, WebSocketServerExtensionHandler (io.netty.handler.codec.http.websocketx.extensions)
invokeChannelRead:379, AbstractChannelHandlerContext (io.netty.channel)
invokeChannelRead:365, AbstractChannelHandlerContext (io.netty.channel)
fireChannelRead:357, AbstractChannelHandlerContext (io.netty.channel)
channelRead:103, MessageToMessageDecoder (io.netty.handler.codec)
invokeChannelRead:379, AbstractChannelHandlerContext (io.netty.channel)
invokeChannelRead:365, AbstractChannelHandlerContext (io.netty.channel)
fireChannelRead:357, AbstractChannelHandlerContext (io.netty.channel)
channelRead:103, MessageToMessageDecoder (io.netty.handler.codec)
channelRead:111, MessageToMessageCodec (io.netty.handler.codec)
invokeChannelRead:379, AbstractChannelHandlerContext (io.netty.channel)
invokeChannelRead:365, AbstractChannelHandlerContext (io.netty.channel)
fireChannelRead:357, AbstractChannelHandlerContext (io.netty.channel)
channelRead:93, ChannelInboundHandlerAdapter (io.netty.channel)
channelRead:64, HttpServerKeepAliveHandler (io.netty.handler.codec.http)
invokeChannelRead:379, AbstractChannelHandlerContext (io.netty.channel)
invokeChannelRead:365, AbstractChannelHandlerContext (io.netty.channel)
fireChannelRead:357, AbstractChannelHandlerContext (io.netty.channel)
dequeue:200, FlowControlHandler (io.netty.handler.flow)
read:139, FlowControlHandler (io.netty.handler.flow)
invokeRead:686, AbstractChannelHandlerContext (io.netty.channel)
read:671, AbstractChannelHandlerContext (io.netty.channel)
requestDemand:165, HandlerPublisher (io.micronaut.http.netty.reactive)
requestDemand:273, HttpStreamsHandler$2 (io.micronaut.http.netty.stream)
receivedDemand:556, HandlerPublisher$ChannelSubscription (io.micronaut.http.netty.reactive)
lambda$request$0:494, HandlerPublisher$ChannelSubscription (io.micronaut.http.netty.reactive)
run:-1, 172773549 (io.micronaut.http.netty.reactive.HandlerPublisher$ChannelSubscription$$Lambda$972)
runTask$$$capture:174, AbstractEventExecutor (io.netty.util.concurrent)
runTask:-1, AbstractEventExecutor (io.netty.util.concurrent)
 - Async stack trace
addTask:-1, SingleThreadEventExecutor (io.netty.util.concurrent)
execute:834, SingleThreadEventExecutor (io.netty.util.concurrent)
execute0:825, SingleThreadEventExecutor (io.netty.util.concurrent)
execute:815, SingleThreadEventExecutor (io.netty.util.concurrent)
request:494, HandlerPublisher$ChannelSubscription (io.micronaut.http.netty.reactive)
flushBuffer:203, SingleThreadedBufferingSubscriber (io.micronaut.core.async.subscriber)
access$100:32, SingleThreadedBufferingSubscriber (io.micronaut.core.async.subscriber)
processDemand:281, SingleThreadedBufferingSubscriber$DownstreamSubscription (io.micronaut.core.async.subscriber)
request:256, SingleThreadedBufferingSubscriber$DownstreamSubscription (io.micronaut.core.async.subscriber)
request:107, JsonContentProcessor$1$1 (io.micronaut.http.server.netty.jackson)
doOnSubscribe:929, RoutingInBoundHandler$4 (io.micronaut.http.server.netty)
onSubscribe:42, CompletionAwareSubscriber (io.micronaut.core.async.subscriber)
doOnSubscribe:121, JsonContentProcessor$1 (io.micronaut.http.server.netty.jackson)
onSubscribe:42, CompletionAwareSubscriber (io.micronaut.core.async.subscriber)
provideDownstreamSubscription:166, SingleThreadedBufferingSubscriber (io.micronaut.core.async.subscriber)
ifPresent:159, Optional (java.util)
doOnSubscribe:61, SingleThreadedBufferingProcessor (io.micronaut.core.async.processor)
onSubscribe:52, SingleThreadedBufferingSubscriber (io.micronaut.core.async.subscriber)
doOnSubscribe:140, JsonContentProcessor (io.micronaut.http.server.netty.jackson)
doOnSubscribe:134, SingleSubscriberProcessor (io.micronaut.core.async.processor)
onSubscribe:42, CompletionAwareSubscriber (io.micronaut.core.async.subscriber)
provideSubscriber:230, HandlerPublisher (io.micronaut.http.netty.reactive)
lambda$subscribe$0:131, HandlerPublisher (io.micronaut.http.netty.reactive)
runTask$$$capture:174, AbstractEventExecutor (io.netty.util.concurrent)
runTask:-1, AbstractEventExecutor (io.netty.util.concurrent)
 - Async stack trace
addTask:-1, SingleThreadEventExecutor (io.netty.util.concurrent)
execute:834, SingleThreadEventExecutor (io.netty.util.concurrent)
execute0:825, SingleThreadEventExecutor (io.netty.util.concurrent)
execute:815, SingleThreadEventExecutor (io.netty.util.concurrent)
subscribe:131, HandlerPublisher (io.micronaut.http.netty.reactive)
subscribe:55, DelegateStreamedHttpRequest (io.micronaut.http.netty.stream)
doSubscribe:66, AbstractHttpContentProcessor (io.micronaut.http.server.netty)
subscribe:57, SingleSubscriberProcessor (io.micronaut.core.async.processor)
lambda$handleRouteMatch$3:586, RoutingInBoundHandler (io.micronaut.http.server.netty)
subscribe:58, MonoCreate (reactor.core.publisher)
subscribe:8469, Flux (reactor.core.publisher)
onNext:195, MonoFlatMapMany$FlatMapManyMain (reactor.core.publisher)
onNext:57, ReactorSubscriber (io.micronaut.reactive.reactor.instrument)
onNext:82, MonoNext$NextSubscriber (reactor.core.publisher)
onNext:57, ReactorSubscriber (io.micronaut.reactive.reactor.instrument)
innerNext:282, FluxConcatMap$ConcatMapImmediate (reactor.core.publisher)
onNext:863, FluxConcatMap$ConcatMapInner (reactor.core.publisher)
onNext:57, ReactorSubscriber (io.micronaut.reactive.reactor.instrument)
onNext:180, MonoPeekTerminal$MonoTerminalPeekSubscriber (reactor.core.publisher)
onNext:57, ReactorSubscriber (io.micronaut.reactive.reactor.instrument)
onNext:113, FluxFilter$FilterSubscriber (reactor.core.publisher)
onNext:57, ReactorSubscriber (io.micronaut.reactive.reactor.instrument)
onNext:101, FluxDefaultIfEmpty$DefaultIfEmptySubscriber (reactor.core.publisher)
onNext:57, ReactorSubscriber (io.micronaut.reactive.reactor.instrument)
onNext:137, FluxHide$SuppressFuseableSubscriber (reactor.core.publisher)
request:2398, Operators$ScalarSubscription (reactor.core.publisher)
request:152, FluxHide$SuppressFuseableSubscriber (reactor.core.publisher)
request:77, FluxDefaultIfEmpty$DefaultIfEmptySubscriber (reactor.core.publisher)
request:186, FluxFilter$FilterSubscriber (reactor.core.publisher)
request:139, MonoPeekTerminal$MonoTerminalPeekSubscriber (reactor.core.publisher)
set:2194, Operators$MultiSubscriptionSubscriber (reactor.core.publisher)
onSubscribe:2068, Operators$MultiSubscriptionSubscriber (reactor.core.publisher)
onSubscribe:50, ReactorSubscriber (io.micronaut.reactive.reactor.instrument)
onSubscribe:152, MonoPeekTerminal$MonoTerminalPeekSubscriber (reactor.core.publisher)
onSubscribe:50, ReactorSubscriber (io.micronaut.reactive.reactor.instrument)
onSubscribe:85, FluxFilter$FilterSubscriber (reactor.core.publisher)
onSubscribe:50, ReactorSubscriber (io.micronaut.reactive.reactor.instrument)
onSubscribe:91, FluxDefaultIfEmpty$DefaultIfEmptySubscriber (reactor.core.publisher)
onSubscribe:50, ReactorSubscriber (io.micronaut.reactive.reactor.instrument)
onSubscribe:122, FluxHide$SuppressFuseableSubscriber (reactor.core.publisher)
subscribe:55, MonoJust (reactor.core.publisher)
subscribe:4400, Mono (reactor.core.publisher)
drain:451, FluxConcatMap$ConcatMapImmediate (reactor.core.publisher)
onSubscribe:219, FluxConcatMap$ConcatMapImmediate (reactor.core.publisher)
onSubscribe:50, ReactorSubscriber (io.micronaut.reactive.reactor.instrument)
subscribe:165, FluxIterable (reactor.core.publisher)
subscribe:87, FluxIterable (reactor.core.publisher)
subscribe:62, InternalFluxOperator (reactor.core.publisher)
subscribe:54, FluxDefer (reactor.core.publisher)
subscribe:4400, Mono (reactor.core.publisher)
onComplete:82, FluxSwitchIfEmpty$SwitchIfEmptySubscriber (reactor.core.publisher)
onComplete:71, ReactorSubscriber (io.micronaut.reactive.reactor.instrument)
onComplete:181, MonoFlatMap$FlatMapMain (reactor.core.publisher)
onComplete:71, ReactorSubscriber (io.micronaut.reactive.reactor.instrument)
onComplete:102, MonoNext$NextSubscriber (reactor.core.publisher)
onComplete:71, ReactorSubscriber (io.micronaut.reactive.reactor.instrument)
checkTerminated:846, FluxFlatMap$FlatMapMain (reactor.core.publisher)
drainLoop:608, FluxFlatMap$FlatMapMain (reactor.core.publisher)
drain:588, FluxFlatMap$FlatMapMain (reactor.core.publisher)
onComplete:465, FluxFlatMap$FlatMapMain (reactor.core.publisher)
onComplete:71, ReactorSubscriber (io.micronaut.reactive.reactor.instrument)
slowPath:294, FluxIterable$IterableSubscription (reactor.core.publisher)
request:230, FluxIterable$IterableSubscription (reactor.core.publisher)
onSubscribe:371, FluxFlatMap$FlatMapMain (reactor.core.publisher)
onSubscribe:50, ReactorSubscriber (io.micronaut.reactive.reactor.instrument)
subscribe:165, FluxIterable (reactor.core.publisher)
subscribe:87, FluxIterable (reactor.core.publisher)
subscribe:8469, Flux (reactor.core.publisher)
subscribeActual:29, FlowableFromPublisher (io.reactivex.internal.operators.flowable)
subscribe:14935, Flowable (io.reactivex)
subscribe:14882, Flowable (io.reactivex)
subscribeActual:57, RxInstrumentedFlowable (io.micronaut.rxjava2.instrument)
subscribe:14935, Flowable (io.reactivex)
subscribeActual:50, FlowableDoOnEach (io.reactivex.internal.operators.flowable)
subscribe:14935, Flowable (io.reactivex)
subscribe:14885, Flowable (io.reactivex)
subscribe:67, FluxSource (reactor.core.publisher)
subscribe:8469, Flux (reactor.core.publisher)
handleRouteMatch:600, RoutingInBoundHandler (io.micronaut.http.server.netty)
channelRead0:456, RoutingInBoundHandler (io.micronaut.http.server.netty)
channelRead0:146, RoutingInBoundHandler (io.micronaut.http.server.netty)
channelRead:99, SimpleChannelInboundHandler (io.netty.channel)
invokeChannelRead:379, AbstractChannelHandlerContext (io.netty.channel)
invokeChannelRead:365, AbstractChannelHandlerContext (io.netty.channel)
fireChannelRead:357, AbstractChannelHandlerContext (io.netty.channel)
channelRead:102, SimpleChannelInboundHandler (io.netty.channel)
invokeChannelRead:379, AbstractChannelHandlerContext (io.netty.channel)
invokeChannelRead:365, AbstractChannelHandlerContext (io.netty.channel)
fireChannelRead:357, AbstractChannelHandlerContext (io.netty.channel)
channelRead:103, MessageToMessageDecoder (io.netty.handler.codec)
invokeChannelRead:379, AbstractChannelHandlerContext (io.netty.channel)
invokeChannelRead:365, AbstractChannelHandlerContext (io.netty.channel)
fireChannelRead:357, AbstractChannelHandlerContext (io.netty.channel)
channelRead:325, HandlerPublisher (io.micronaut.http.netty.reactive)
invokeChannelRead:379, AbstractChannelHandlerContext (io.netty.channel)
invokeChannelRead:365, AbstractChannelHandlerContext (io.netty.channel)
fireChannelRead:357, AbstractChannelHandlerContext (io.netty.channel)
channelRead:279, HttpStreamsHandler (io.micronaut.http.netty.stream)
channelRead:134, HttpStreamsServerHandler (io.micronaut.http.netty.stream)
invokeChannelRead:379, AbstractChannelHandlerContext (io.netty.channel)
invokeChannelRead:365, AbstractChannelHandlerContext (io.netty.channel)
fireChannelRead:357, AbstractChannelHandlerContext (io.netty.channel)
channelRead:93, ChannelInboundHandlerAdapter (io.netty.channel)
channelRead:99, WebSocketServerExtensionHandler (io.netty.handler.codec.http.websocketx.extensions)
invokeChannelRead:379, AbstractChannelHandlerContext (io.netty.channel)
invokeChannelRead:365, AbstractChannelHandlerContext (io.netty.channel)
fireChannelRead:357, AbstractChannelHandlerContext (io.netty.channel)
channelRead:103, MessageToMessageDecoder (io.netty.handler.codec)
invokeChannelRead:379, AbstractChannelHandlerContext (io.netty.channel)
invokeChannelRead:365, AbstractChannelHandlerContext (io.netty.channel)
fireChannelRead:357, AbstractChannelHandlerContext (io.netty.channel)
channelRead:103, MessageToMessageDecoder (io.netty.handler.codec)
channelRead:111, MessageToMessageCodec (io.netty.handler.codec)
invokeChannelRead:379, AbstractChannelHandlerContext (io.netty.channel)
invokeChannelRead:365, AbstractChannelHandlerContext (io.netty.channel)
fireChannelRead:357, AbstractChannelHandlerContext (io.netty.channel)
channelRead:93, ChannelInboundHandlerAdapter (io.netty.channel)
channelRead:64, HttpServerKeepAliveHandler (io.netty.handler.codec.http)
invokeChannelRead:379, AbstractChannelHandlerContext (io.netty.channel)
invokeChannelRead:365, AbstractChannelHandlerContext (io.netty.channel)
fireChannelRead:357, AbstractChannelHandlerContext (io.netty.channel)
dequeue:200, FlowControlHandler (io.netty.handler.flow)
channelRead:162, FlowControlHandler (io.netty.handler.flow)
invokeChannelRead:379, AbstractChannelHandlerContext (io.netty.channel)
invokeChannelRead:365, AbstractChannelHandlerContext (io.netty.channel)
fireChannelRead:357, AbstractChannelHandlerContext (io.netty.channel)
fireChannelRead:436, CombinedChannelDuplexHandler$DelegatingChannelHandlerContext (io.netty.channel)
fireChannelRead:327, ByteToMessageDecoder (io.netty.handler.codec)
fireChannelRead:314, ByteToMessageDecoder (io.netty.handler.codec)
callDecode:435, ByteToMessageDecoder (io.netty.handler.codec)
channelRead:279, ByteToMessageDecoder (io.netty.handler.codec)
channelRead:251, CombinedChannelDuplexHandler (io.netty.channel)
invokeChannelRead:379, AbstractChannelHandlerContext (io.netty.channel)
invokeChannelRead:365, AbstractChannelHandlerContext (io.netty.channel)
fireChannelRead:357, AbstractChannelHandlerContext (io.netty.channel)
channelRead:286, IdleStateHandler (io.netty.handler.timeout)
invokeChannelRead:379, AbstractChannelHandlerContext (io.netty.channel)
invokeChannelRead:365, AbstractChannelHandlerContext (io.netty.channel)
fireChannelRead:357, AbstractChannelHandlerContext (io.netty.channel)
channelRead:1410, DefaultChannelPipeline$HeadContext (io.netty.channel)
invokeChannelRead:379, AbstractChannelHandlerContext (io.netty.channel)
invokeChannelRead:365, AbstractChannelHandlerContext (io.netty.channel)
fireChannelRead:919, DefaultChannelPipeline (io.netty.channel)
read:166, AbstractNioByteChannel$NioByteUnsafe (io.netty.channel.nio)
processSelectedKey:722, NioEventLoop (io.netty.channel.nio)
processSelectedKeysOptimized:658, NioEventLoop (io.netty.channel.nio)
processSelectedKeys:584, NioEventLoop (io.netty.channel.nio)
run:496, NioEventLoop (io.netty.channel.nio)
run:995, SingleThreadEventExecutor$4 (io.netty.util.concurrent)
run:74, ThreadExecutorMap$2 (io.netty.util.internal)
run:30, FastThreadLocalRunnable (io.netty.util.concurrent)
run:750, Thread (java.lang)
yawkat commented 2 years ago

by 'exception mappers' you mean a method annotated with @Error?

mrwilby commented 2 years ago

@yawkat sorry, that wasn't very clear of me. I am referring to a class that implements (server-side) ExceptionHandler

public class CodecExceptionHandler implements ExceptionHandler<CodecException, HttpResponse<?>> {
...
}