summaryrefslogtreecommitdiff
path: root/qpid/java/common/src
diff options
context:
space:
mode:
authorRobert Godfrey <rgodfrey@apache.org>2013-06-14 20:55:03 +0000
committerRobert Godfrey <rgodfrey@apache.org>2013-06-14 20:55:03 +0000
commit04f7a874d41a0b77ced712940003a869fb23f373 (patch)
tree5143cc0aac681cd2daaf78f282806fdec435f24c /qpid/java/common/src
parentb5ff256fd05aaf49b0f7c918745abd05f5ce06d7 (diff)
downloadqpid-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.java3
-rw-r--r--qpid/java/common/src/main/java/org/apache/qpid/transport/network/io/IoNetworkTransport.java8
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)