From af499b5fb4862041962cba2e00670ad415130897 Mon Sep 17 00:00:00 2001 From: Norman Maurer Date: Sun, 8 Sep 2013 20:11:51 +0200 Subject: [PATCH] Mark ChannelHandler.exceptionCaught(...) as deprecated in preparation to move to ChannelInboundHandler. Related to [#1808] --- .../main/java/io/netty/channel/ChannelHandler.java | 5 +++++ .../java/io/netty/channel/ChannelHandlerAdapter.java | 1 + .../java/io/netty/channel/ChannelInboundHandler.java | 6 ++++++ .../netty/channel/ChannelInboundHandlerAdapter.java | 12 ++++++++++++ 4 files changed, 24 insertions(+) diff --git a/transport/src/main/java/io/netty/channel/ChannelHandler.java b/transport/src/main/java/io/netty/channel/ChannelHandler.java index 2384292037..b5e6af8e77 100644 --- a/transport/src/main/java/io/netty/channel/ChannelHandler.java +++ b/transport/src/main/java/io/netty/channel/ChannelHandler.java @@ -194,7 +194,12 @@ public interface ChannelHandler { /** * Gets called if a {@link Throwable} was thrown. + * + * @deprecated Will be removed in the future and only {@link ChannelInboundHandler} will receive + * exceptionCaught events. For {@link ChannelOutboundHandler} the {@link ChannelPromise} + * must be failed. */ + @Deprecated void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception; /** diff --git a/transport/src/main/java/io/netty/channel/ChannelHandlerAdapter.java b/transport/src/main/java/io/netty/channel/ChannelHandlerAdapter.java index 86a834867d..8d315025ba 100644 --- a/transport/src/main/java/io/netty/channel/ChannelHandlerAdapter.java +++ b/transport/src/main/java/io/netty/channel/ChannelHandlerAdapter.java @@ -54,6 +54,7 @@ public abstract class ChannelHandlerAdapter implements ChannelHandler { * * Sub-classes may override this method to change behavior. */ + @Deprecated @Override public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception { diff --git a/transport/src/main/java/io/netty/channel/ChannelInboundHandler.java b/transport/src/main/java/io/netty/channel/ChannelInboundHandler.java index 4cccc84405..dc5a428b98 100644 --- a/transport/src/main/java/io/netty/channel/ChannelInboundHandler.java +++ b/transport/src/main/java/io/netty/channel/ChannelInboundHandler.java @@ -68,4 +68,10 @@ public interface ChannelInboundHandler extends ChannelHandler { * {@link Channel#isWritable()}. */ void channelWritabilityChanged(ChannelHandlerContext ctx) throws Exception; + + /** + * Gets called if a {@link Throwable} was thrown. + */ + @Override + void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception; } diff --git a/transport/src/main/java/io/netty/channel/ChannelInboundHandlerAdapter.java b/transport/src/main/java/io/netty/channel/ChannelInboundHandlerAdapter.java index 3a06d12170..d0a1d2d766 100644 --- a/transport/src/main/java/io/netty/channel/ChannelInboundHandlerAdapter.java +++ b/transport/src/main/java/io/netty/channel/ChannelInboundHandlerAdapter.java @@ -118,4 +118,16 @@ public class ChannelInboundHandlerAdapter extends ChannelHandlerAdapter implemen public void channelWritabilityChanged(ChannelHandlerContext ctx) throws Exception { ctx.fireChannelWritabilityChanged(); } + + /** + * Calls {@link ChannelHandlerContext#fireExceptionCaught(Throwable)} to forward + * to the next {@link ChannelHandler} in the {@link ChannelPipeline}. + * + * Sub-classes may override this method to change behavior. + */ + @Override + public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) + throws Exception { + ctx.fireExceptionCaught(cause); + } }