Make sure Channel connected event is not fired on connect failure. See #249

This commit is contained in:
norman 2012-04-04 07:40:50 +02:00
parent d66cf2cbfa
commit 389845b4c9
2 changed files with 11 additions and 14 deletions

View File

@ -215,7 +215,6 @@ public class SctpWorker extends NioWorker {
protected void connect(SelectionKey k) {
final SctpClientChannel ch = (SctpClientChannel) k.attachment();
try {
// TODO: Remove cast
if (ch.getJdkChannel().finishConnect()) {
registerTask(ch, ch.connectFuture);
}
@ -358,7 +357,13 @@ public class SctpWorker extends NioWorker {
((SctpChannelImpl) channel).setConnected();
future.setSuccess();
}
if (!server) {
if (!((SctpClientChannel) channel).boundManually) {
fireChannelBound(channel, localAddress);
}
fireChannelConnected(channel, remoteAddress);
}
} catch (IOException e) {
if (future != null) {
future.setFailure(e);
@ -369,13 +374,6 @@ public class SctpWorker extends NioWorker {
"Failed to register a socket to the selector.", e);
}
}
if (!server) {
if (!((SctpClientChannel) channel).boundManually) {
fireChannelBound(channel, localAddress);
}
fireChannelConnected(channel, remoteAddress);
}
}
@Override

View File

@ -140,6 +140,10 @@ public class NioWorker extends AbstractNioWorker {
}
future.setSuccess();
}
if (server || !((NioClientSocketChannel) channel).boundManually) {
fireChannelBound(channel, localAddress);
}
fireChannelConnected(channel, remoteAddress);
} catch (IOException e) {
if (future != null) {
@ -151,11 +155,6 @@ public class NioWorker extends AbstractNioWorker {
"Failed to register a socket to the selector.", e);
}
}
if (server || !((NioClientSocketChannel) channel).boundManually) {
fireChannelBound(channel, localAddress);
}
fireChannelConnected(channel, remoteAddress);
}
}