summaryrefslogtreecommitdiff
path: root/qpid/java/common
diff options
context:
space:
mode:
authorKeith Wall <kwall@apache.org>2014-07-13 17:29:39 +0000
committerKeith Wall <kwall@apache.org>2014-07-13 17:29:39 +0000
commit58e3f0aaed84f4d925d1d461e4d38232a53bea14 (patch)
treed2a1ab70095a3196471a4c8c1641e09e6b0fae77 /qpid/java/common
parent447b00142c005f737e0fdb8bb4bf3281bdf80d9f (diff)
downloadqpid-python-58e3f0aaed84f4d925d1d461e4d38232a53bea14.tar.gz
QPID-5892: SSL Sender may spuriously timeout if SSL negotiation fails
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1610251 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/common')
-rw-r--r--qpid/java/common/src/main/java/org/apache/qpid/transport/network/security/ssl/SSLSender.java13
1 files changed, 9 insertions, 4 deletions
diff --git a/qpid/java/common/src/main/java/org/apache/qpid/transport/network/security/ssl/SSLSender.java b/qpid/java/common/src/main/java/org/apache/qpid/transport/network/security/ssl/SSLSender.java
index 88943695d4..7c61136b42 100644
--- a/qpid/java/common/src/main/java/org/apache/qpid/transport/network/security/ssl/SSLSender.java
+++ b/qpid/java/common/src/main/java/org/apache/qpid/transport/network/security/ssl/SSLSender.java
@@ -72,7 +72,7 @@ public class SSLSender implements Sender<ByteBuffer>
return;
}
log.debug("Closing SSL connection");
-
+
engine.closeOutbound();
try
{
@@ -211,10 +211,15 @@ public class SSLSender implements Sender<ByteBuffer>
flush();
synchronized(_sslStatus.getSslLock())
{
+ if (_sslStatus.getSslErrorFlag())
+ {
+ break;
+ }
+
switch (engine.getHandshakeStatus())
{
case NEED_UNWRAP:
- long start = System.currentTimeMillis();
+ final long start = System.currentTimeMillis();
try
{
_sslStatus.getSslLock().wait(timeout);
@@ -224,10 +229,10 @@ public class SSLSender implements Sender<ByteBuffer>
// pass
}
- if (System.currentTimeMillis()- start >= timeout)
+ if (!_sslStatus.getSslErrorFlag() && System.currentTimeMillis() - start >= timeout)
{
throw new SenderException(
- "SSL Engine timed out waiting for a response." +
+ "SSL Engine timed out after waiting " + timeout + "ms. for a response." +
"To get more info,run with -Djavax.net.debug=ssl");
}
break;