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 | 58e3f0aaed84f4d925d1d461e4d38232a53bea14 (patch) | |
| tree | d2a1ab70095a3196471a4c8c1641e09e6b0fae77 /qpid/java/common | |
| parent | 447b00142c005f737e0fdb8bb4bf3281bdf80d9f (diff) | |
| download | qpid-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.java | 13 |
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; |
