INT-1146 close on inbound adapter should close socket regardless of success of channel send

This commit is contained in:
Gary Russell
2010-05-28 22:25:05 +00:00
parent f6ac5c61bb
commit 3b7696449b
2 changed files with 14 additions and 10 deletions

View File

@@ -102,7 +102,6 @@ public class TcpNetReceivingChannelAdapter extends
return;
}
if (messageStatus == SocketReader.MESSAGE_COMPLETE) {
processMessage(reader);
if (close) {
logger.debug("Closing socket because close=true");
try {
@@ -110,6 +109,9 @@ public class TcpNetReceivingChannelAdapter extends
} catch (IOException ioe) {
logger.error("Error on close", ioe);
}
}
processMessage(reader);
if (close) {
break;
}
}

View File

@@ -177,21 +177,23 @@ public class TcpNioReceivingChannelAdapter extends
return;
}
if (messageStatus == SocketReader.MESSAGE_COMPLETE) {
if (close) {
logger.debug("Closing channel because close=true");
try {
key.channel().close();
} catch (IOException ioe) {
logger.error("Error on close", ioe);
}
}
Message<byte[]> message;
message = mapper.toMessage(reader);
if (message != null) {
sendMessage(message);
if (close) {
logger.debug("Closing channel because close=true");
try {
key.channel().close();
} catch (IOException ioe) {
logger.error("Error on close", ioe);
}
}
}
}
} catch (Exception e) {}
} catch (Exception e) {
logger.error("Failure on read or message send", e);
}
}
@Override