diff options
| author | Robert Godfrey <rgodfrey@apache.org> | 2013-06-14 20:55:03 +0000 |
|---|---|---|
| committer | Robert Godfrey <rgodfrey@apache.org> | 2013-06-14 20:55:03 +0000 |
| commit | 04f7a874d41a0b77ced712940003a869fb23f373 (patch) | |
| tree | 5143cc0aac681cd2daaf78f282806fdec435f24c /qpid/java/common/src | |
| parent | b5ff256fd05aaf49b0f7c918745abd05f5ce06d7 (diff) | |
| download | qpid-python-04f7a874d41a0b77ced712940003a869fb23f373.tar.gz | |
QPID-4925 : [Java Broker] Timeout connections which do not complete connection handshake
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1493240 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/common/src')
| -rw-r--r-- | qpid/java/common/src/main/java/org/apache/qpid/configuration/CommonProperties.java | 3 | ||||
| -rw-r--r-- | qpid/java/common/src/main/java/org/apache/qpid/transport/network/io/IoNetworkTransport.java | 8 |
2 files changed, 10 insertions, 1 deletions
diff --git a/qpid/java/common/src/main/java/org/apache/qpid/configuration/CommonProperties.java b/qpid/java/common/src/main/java/org/apache/qpid/configuration/CommonProperties.java index 2449f457e5..6bae93a1b8 100644 --- a/qpid/java/common/src/main/java/org/apache/qpid/configuration/CommonProperties.java +++ b/qpid/java/common/src/main/java/org/apache/qpid/configuration/CommonProperties.java @@ -33,6 +33,9 @@ public class CommonProperties public static final String IO_NETWORK_TRANSPORT_TIMEOUT_PROP_NAME = "qpid.io_network_transport_timeout"; public static final int IO_NETWORK_TRANSPORT_TIMEOUT_DEFAULT = 60000; + public static final String HANDSHAKE_TIMEOUT_PROP_NAME = "qpid.handshake_timeout"; + public static final int HANDSHAKE_TIMEOUT_DEFAULT = 2; + private CommonProperties() { diff --git a/qpid/java/common/src/main/java/org/apache/qpid/transport/network/io/IoNetworkTransport.java b/qpid/java/common/src/main/java/org/apache/qpid/transport/network/io/IoNetworkTransport.java index 5742667dbe..18a8bf2779 100644 --- a/qpid/java/common/src/main/java/org/apache/qpid/transport/network/io/IoNetworkTransport.java +++ b/qpid/java/common/src/main/java/org/apache/qpid/transport/network/io/IoNetworkTransport.java @@ -50,6 +50,9 @@ public class IoNetworkTransport implements OutgoingNetworkTransport, IncomingNet private static final org.slf4j.Logger LOGGER = LoggerFactory.getLogger(IoNetworkTransport.class); private static final int TIMEOUT = Integer.getInteger(CommonProperties.IO_NETWORK_TRANSPORT_TIMEOUT_PROP_NAME, CommonProperties.IO_NETWORK_TRANSPORT_TIMEOUT_DEFAULT); + private static final int HANSHAKE_TIMEOUT = Integer.getInteger(CommonProperties.HANDSHAKE_TIMEOUT_PROP_NAME , + CommonProperties.HANDSHAKE_TIMEOUT_DEFAULT); + private Socket _socket; private IoNetworkConnection _connection; @@ -224,7 +227,7 @@ public class IoNetworkTransport implements OutgoingNetworkTransport, IncomingNet { socket = _serverSocket.accept(); socket.setTcpNoDelay(_config.getTcpNoDelay()); - socket.setSoTimeout(_timeout); + socket.setSoTimeout(1000 * HANSHAKE_TIMEOUT); final Integer sendBufferSize = _config.getSendBufferSize(); final Integer receiveBufferSize = _config.getReceiveBufferSize(); @@ -237,6 +240,9 @@ public class IoNetworkTransport implements OutgoingNetworkTransport, IncomingNet final IdleTimeoutTicker ticker = new IdleTimeoutTicker(engine, TIMEOUT); NetworkConnection connection = new IoNetworkConnection(socket, engine, sendBufferSize, receiveBufferSize, _timeout, ticker); + + connection.setMaxReadIdle(HANSHAKE_TIMEOUT); + ticker.setConnection(connection); if(_sslContext != null && socket instanceof SSLSocket) |
