in core/src/main/java/org/apache/mina/transport/nio/NioTcpSession.java [336:381]
public void ready(final boolean accept, boolean connect, final boolean read, final ByteBuffer readBuffer,
final boolean write) {
if (LOG.isDebugEnabled()) {
LOG.debug("session {} ready for accept={}, connect={}, read={}, write={}", new Object[] { this, accept,
connect, read, write });
}
if (connect) {
try {
boolean isConnected = ((SocketChannel) channel).finishConnect();
if (!isConnected) {
LOG.error("unable to connect session {}", this);
} else {
// cancel current registration for connection
selectionKey.cancel();
selectionKey = null;
// Register for reading
selectorLoop.register(false, false, true, false, this, channel, new RegistrationCallback() {
@Override
public void done(SelectionKey selectionKey) {
setConnected();
}
});
}
} catch (IOException e) {
LOG.debug("Connection error, we cancel the future", e);
if (connectFuture != null) {
connectFuture.error(e);
}
}
}
if (read) {
processRead(readBuffer);
}
if (write) {
processWrite(selectorLoop);
}
if (accept) {
throw new IllegalStateException("accept event should never occur on NioTcpSession");
}
}