From 3393629eeda2fbc51d3991fa87724ef1ddbcdf01 Mon Sep 17 00:00:00 2001 From: Trustin Lee Date: Tue, 12 Jun 2012 17:25:27 +0900 Subject: [PATCH] Log the cause of exceptionCaught event when failed to notify --- .../channel/DefaultChannelHandlerContext.java | 17 ++++++++++++----- .../netty/channel/MultithreadEventExecutor.java | 2 +- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/transport/src/main/java/io/netty/channel/DefaultChannelHandlerContext.java b/transport/src/main/java/io/netty/channel/DefaultChannelHandlerContext.java index 5f251982bd..d6f6fade46 100644 --- a/transport/src/main/java/io/netty/channel/DefaultChannelHandlerContext.java +++ b/transport/src/main/java/io/netty/channel/DefaultChannelHandlerContext.java @@ -577,12 +577,19 @@ final class DefaultChannelHandlerContext extends DefaultAttributeMap implements } } } else { - executor.execute(new Runnable() { - @Override - public void run() { - fireExceptionCaught(cause); + try { + executor.execute(new Runnable() { + @Override + public void run() { + fireExceptionCaught(cause); + } + }); + } catch (Throwable t) { + if (logger.isWarnEnabled()) { + logger.warn("Failed to submit an exceptionCaught() event.", t); + logger.warn("The exceptionCaught() event that was failed to submit was:", cause); } - }); + } } } else { logger.warn( diff --git a/transport/src/main/java/io/netty/channel/MultithreadEventExecutor.java b/transport/src/main/java/io/netty/channel/MultithreadEventExecutor.java index d4b2c3f308..1d5208eccf 100644 --- a/transport/src/main/java/io/netty/channel/MultithreadEventExecutor.java +++ b/transport/src/main/java/io/netty/channel/MultithreadEventExecutor.java @@ -201,7 +201,7 @@ public abstract class MultithreadEventExecutor implements EventExecutor { @Override public boolean inEventLoop() { - return SingleThreadEventExecutor.currentEventLoop() != null; + throw new UnsupportedOperationException(); } @Override