diff --git a/spring-integration-ip/src/main/java/org/springframework/integration/ip/tcp/connection/TcpNioClientConnectionFactory.java b/spring-integration-ip/src/main/java/org/springframework/integration/ip/tcp/connection/TcpNioClientConnectionFactory.java index 5de0da2c9c..ede4db7cd9 100644 --- a/spring-integration-ip/src/main/java/org/springframework/integration/ip/tcp/connection/TcpNioClientConnectionFactory.java +++ b/spring-integration-ip/src/main/java/org/springframework/integration/ip/tcp/connection/TcpNioClientConnectionFactory.java @@ -20,6 +20,7 @@ import java.io.IOException; import java.net.InetSocketAddress; import java.net.SocketException; import java.nio.ByteBuffer; +import java.nio.channels.CancelledKeyException; import java.nio.channels.ClosedChannelException; import java.nio.channels.SelectionKey; import java.nio.channels.Selector; @@ -123,7 +124,14 @@ public class TcpNioClientConnectionFactory extends while (this.isActive()) { SocketChannel newChannel; int soTimeout = this.getSoTimeout(); - int selectionCount = selector.select(soTimeout < 0 ? 0 : soTimeout); + int selectionCount = 0; + try { + selectionCount = selector.select(soTimeout < 0 ? 0 : soTimeout); + } catch (CancelledKeyException cke) { + if (logger.isDebugEnabled()) { + logger.debug("CancelledKeyException during Selector.select()"); + } + } while ((newChannel = newChannels.poll()) != null) { try { newChannel.register(this.selector, SelectionKey.OP_READ, connections.get(newChannel));