diff --git a/src/main/java/org/jboss/netty/channel/socket/nio/NioWorker.java b/src/main/java/org/jboss/netty/channel/socket/nio/NioWorker.java index f2c230dd6a..633f21cbfb 100644 --- a/src/main/java/org/jboss/netty/channel/socket/nio/NioWorker.java +++ b/src/main/java/org/jboss/netty/channel/socket/nio/NioWorker.java @@ -113,9 +113,10 @@ class NioWorker implements Runnable { boolean server = !(channel instanceof NioClientSocketChannel); if (server) { fireChannelOpen(channel); + fireChannelBound(channel, channel.getLocalAddress()); + } else if (!((NioClientSocketChannel) channel).boundManually) { + fireChannelBound(channel, channel.getLocalAddress()); } - - fireChannelBound(channel, channel.getLocalAddress()); fireChannelConnected(channel, channel.getRemoteAddress()); String threadName = @@ -141,8 +142,13 @@ class NioWorker implements Runnable { "Failed to register a socket to the selector.", e); } - fireChannelOpen(channel); - fireChannelBound(channel, channel.getLocalAddress()); + boolean server = !(channel instanceof NioClientSocketChannel); + if (server) { + fireChannelOpen(channel); + fireChannelBound(channel, channel.getLocalAddress()); + } else if (!((NioClientSocketChannel) channel).boundManually) { + fireChannelBound(channel, channel.getLocalAddress()); + } fireChannelConnected(channel, channel.getRemoteAddress()); } finally { selectorGuard.readLock().unlock();