From f68c0afd4995af69e1a2cd8fdf7494e5a01b1234 Mon Sep 17 00:00:00 2001 From: Rajith Muditha Attapattu Date: Mon, 4 May 2009 22:21:06 +0000 Subject: This is related to QPID-1839 I added a timeout (that could be configured via qpid.ssl_timeout if needed) to notify the application, 1) if the broker fails to respond in a timely manner 2) if there was an error and the broker has already closed the connection. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@771470 13f79535-47bb-0310-9956-ffa450edef68 --- .../org/apache/qpid/transport/network/ssl/SSLSender.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'java/common/src') diff --git a/java/common/src/main/java/org/apache/qpid/transport/network/ssl/SSLSender.java b/java/common/src/main/java/org/apache/qpid/transport/network/ssl/SSLSender.java index 5f456f28b1..5e878da531 100644 --- a/java/common/src/main/java/org/apache/qpid/transport/network/ssl/SSLSender.java +++ b/java/common/src/main/java/org/apache/qpid/transport/network/ssl/SSLSender.java @@ -38,6 +38,7 @@ public class SSLSender implements Sender private SSLEngine engine; private int sslBufSize; private ByteBuffer netData; + private long timeout = 30000; private final Object engineState = new Object(); private final AtomicBoolean closed = new AtomicBoolean(false); @@ -49,7 +50,8 @@ public class SSLSender implements Sender this.engine = engine; this.delegate = delegate; sslBufSize = engine.getSession().getPacketBufferSize(); - netData = ByteBuffer.allocate(sslBufSize); + netData = ByteBuffer.allocate(sslBufSize); + timeout = Long.getLong("qpid.ssl_timeout", 60000); } public void close() @@ -198,14 +200,22 @@ public class SSLSender implements Sender flush(); synchronized(engineState) { + long start = System.currentTimeMillis(); try { - engineState.wait(); + engineState.wait(timeout); } catch(InterruptedException e) { // pass } + + if (System.currentTimeMillis()- start >= timeout) + { + throw new SenderException( + "SSL Engine timed out waiting for a response." + + "To get more info,run with -Djavax.net.debug=ssl"); + } } break; -- cgit v1.2.1