diff options
author | Keith Wall <kwall@apache.org> | 2014-07-13 17:29:39 +0000 |
---|---|---|
committer | Keith Wall <kwall@apache.org> | 2014-07-13 17:29:39 +0000 |
commit | c1f3ef7be8caa8e778b67c3821494f5a1bd963ff (patch) | |
tree | 884958401406fbe89e6f823d517bf27b92cacbca | |
parent | 83258e74aedbc812906df5d1d749a9f82984f5d8 (diff) | |
download | qpid-python-c1f3ef7be8caa8e778b67c3821494f5a1bd963ff.tar.gz |
QPID-5892: SSL Sender may spuriously timeout if SSL negotiation fails
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1610251 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r-- | java/common/src/main/java/org/apache/qpid/transport/network/security/ssl/SSLSender.java | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/java/common/src/main/java/org/apache/qpid/transport/network/security/ssl/SSLSender.java b/java/common/src/main/java/org/apache/qpid/transport/network/security/ssl/SSLSender.java index 88943695d4..7c61136b42 100644 --- a/java/common/src/main/java/org/apache/qpid/transport/network/security/ssl/SSLSender.java +++ b/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; |