summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--java/common/src/main/java/org/apache/qpid/transport/network/security/ssl/SSLBufferingSender.java15
1 files changed, 9 insertions, 6 deletions
diff --git a/java/common/src/main/java/org/apache/qpid/transport/network/security/ssl/SSLBufferingSender.java b/java/common/src/main/java/org/apache/qpid/transport/network/security/ssl/SSLBufferingSender.java
index 0d36b96cd4..24f95d7798 100644
--- a/java/common/src/main/java/org/apache/qpid/transport/network/security/ssl/SSLBufferingSender.java
+++ b/java/common/src/main/java/org/apache/qpid/transport/network/security/ssl/SSLBufferingSender.java
@@ -71,7 +71,7 @@ public class SSLBufferingSender implements Sender<ByteBuffer>
return;
}
log.debug("Closing SSL connection");
-
+ doSend();
engine.closeOutbound();
try
{
@@ -140,7 +140,10 @@ public class SSLBufferingSender implements Sender<ByteBuffer>
public void send()
{
- doSend();
+ if(!closed.get())
+ {
+ doSend();
+ }
}
public synchronized void send(ByteBuffer appData)
@@ -154,6 +157,10 @@ public class SSLBufferingSender implements Sender<ByteBuffer>
newBuf.flip();
_appData = newBuf;
}
+ if (closed.get())
+ {
+ throw new SenderException("SSL Sender is closed");
+ }
doSend();
if(!appData.hasRemaining())
{
@@ -169,10 +176,6 @@ public class SSLBufferingSender implements Sender<ByteBuffer>
private synchronized void doSend()
{
- if (closed.get())
- {
- throw new SenderException("SSL Sender is closed");
- }
HandshakeStatus handshakeStatus;
Status status;