From c1f3ef7be8caa8e778b67c3821494f5a1bd963ff Mon Sep 17 00:00:00 2001 From: Keith Wall Date: Sun, 13 Jul 2014 17:29:39 +0000 Subject: 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 --- .../qpid/transport/network/security/ssl/SSLSender.java | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'java/common/src') 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 return; } log.debug("Closing SSL connection"); - + engine.closeOutbound(); try { @@ -211,10 +211,15 @@ public class SSLSender implements Sender 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 // 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; -- cgit v1.2.1