You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by kw...@apache.org on 2014/07/13 19:29:39 UTC

svn commit: r1610251 - /qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/network/security/ssl/SSLSender.java

Author: kwall
Date: Sun Jul 13 17:29:39 2014
New Revision: 1610251

URL: http://svn.apache.org/r1610251
Log:
QPID-5892: SSL Sender may spuriously timeout if SSL negotiation fails

Modified:
    qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/network/security/ssl/SSLSender.java

Modified: qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/network/security/ssl/SSLSender.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/network/security/ssl/SSLSender.java?rev=1610251&r1=1610250&r2=1610251&view=diff
==============================================================================
--- qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/network/security/ssl/SSLSender.java (original)
+++ qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/network/security/ssl/SSLSender.java Sun Jul 13 17:29:39 2014
@@ -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;



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org