Package org.mockserver.netty.http3
Class Http3ListenerExceptionHandler
java.lang.Object
io.netty.channel.ChannelHandlerAdapter
io.netty.channel.ChannelInboundHandlerAdapter
org.mockserver.netty.http3.Http3ListenerExceptionHandler
- All Implemented Interfaces:
io.netty.channel.ChannelHandler,io.netty.channel.ChannelInboundHandler
public class Http3ListenerExceptionHandler
extends io.netty.channel.ChannelInboundHandlerAdapter
The last handler of the HTTP/3 UDP listener's pipeline, behind the QUIC codec, which takes no exception itself. It
logs each exception that reaches it in MockServer's log, where Netty would log it at
WARN with a stack
trace through its own logger.
It closes nothing. Netty's NIO datagram channel keeps reading after a SocketException, which can then recur
with each datagram, so only the first of each class is a warning; it closes the listener after any other read error.
The epoll datagram channel keeps reading after every read error, whose class is not a SocketException, so
there every other IOException is warned of once per class and message, as one class carries every errno.
One instance serves one listener, and its events all arrive on that listener's event loop.
-
Nested Class Summary
Nested classes/interfaces inherited from interface io.netty.channel.ChannelHandler
io.netty.channel.ChannelHandler.Sharable -
Constructor Summary
ConstructorsConstructorDescriptionHttp3ListenerExceptionHandler(org.mockserver.logging.MockServerLogger mockServerLogger, boolean keepsReadingAfterEveryReadError) -
Method Summary
Modifier and TypeMethodDescriptionvoidexceptionCaught(io.netty.channel.ChannelHandlerContext ctx, Throwable cause) Methods inherited from class io.netty.channel.ChannelInboundHandlerAdapter
channelActive, channelInactive, channelRead, channelReadComplete, channelRegistered, channelUnregistered, channelWritabilityChanged, userEventTriggeredMethods inherited from class io.netty.channel.ChannelHandlerAdapter
ensureNotSharable, handlerAdded, handlerRemoved, isSharableMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface io.netty.channel.ChannelHandler
handlerAdded, handlerRemoved
-
Constructor Details
-
Http3ListenerExceptionHandler
public Http3ListenerExceptionHandler(org.mockserver.logging.MockServerLogger mockServerLogger, boolean keepsReadingAfterEveryReadError) - Parameters:
keepsReadingAfterEveryReadError- true for a listener that does not close on a read error (epoll)
-
-
Method Details
-
exceptionCaught
- Specified by:
exceptionCaughtin interfaceio.netty.channel.ChannelHandler- Specified by:
exceptionCaughtin interfaceio.netty.channel.ChannelInboundHandler- Overrides:
exceptionCaughtin classio.netty.channel.ChannelInboundHandlerAdapter
-