diff options
| author | Keith Wall <kwall@apache.org> | 2015-02-13 14:39:48 +0000 |
|---|---|---|
| committer | Keith Wall <kwall@apache.org> | 2015-02-13 14:39:48 +0000 |
| commit | 44def49f41ce041b740ecbfc11147c9def35b9e7 (patch) | |
| tree | 92c09faef1c500588c3aa1a434b733456c2ca03d /qpid/java | |
| parent | 762aa71a99d13cb3f7efd29cb95098eadafb5396 (diff) | |
| download | qpid-python-44def49f41ce041b740ecbfc11147c9def35b9e7.tar.gz | |
Fix failing SSL test owing to missed wakeup
git-svn-id: https://svn.apache.org/repos/asf/qpid/branches/QPID-6262-JavaBrokerNIO@1659576 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java')
2 files changed, 11 insertions, 4 deletions
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/protocol/MultiVersionProtocolEngine.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/protocol/MultiVersionProtocolEngine.java index 6f55e59067..759f5b8eb7 100755 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/protocol/MultiVersionProtocolEngine.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/protocol/MultiVersionProtocolEngine.java @@ -25,6 +25,7 @@ import java.net.InetSocketAddress; import java.net.SocketAddress; import java.nio.ByteBuffer; import java.util.Set; +import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicReference; import javax.security.auth.Subject; @@ -383,6 +384,7 @@ public class MultiVersionProtocolEngine implements ServerProtocolEngine { private final ByteBuffer _header = ByteBuffer.allocate(MINIMUM_REQUIRED_HEADER_BYTES); private long _lastReadTime = System.currentTimeMillis(); + private final AtomicBoolean _hasWork = new AtomicBoolean(); public SocketAddress getRemoteAddress() { @@ -424,13 +426,13 @@ public class MultiVersionProtocolEngine implements ServerProtocolEngine @Override public boolean hasWork() { - return false; + return _hasWork.get(); } @Override public void notifyWork() { - + _hasWork.set(true); } @Override @@ -442,7 +444,7 @@ public class MultiVersionProtocolEngine implements ServerProtocolEngine @Override public void clearWork() { - + _hasWork.set(false); } public void received(ByteBuffer msg) @@ -533,6 +535,11 @@ public class MultiVersionProtocolEngine implements ServerProtocolEngine } else { + boolean hasWork = _delegate.hasWork(); + if (hasWork) + { + newDelegate.notifyWork(); + } _delegate = newDelegate; _delegate.setWorkListener(_workListener.get()); _header.flip(); diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/transport/NonBlockingConnection.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/transport/NonBlockingConnection.java index 97df05419a..0b7d0b303e 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/transport/NonBlockingConnection.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/transport/NonBlockingConnection.java @@ -271,7 +271,7 @@ public class NonBlockingConnection implements NetworkConnection, ByteBufferSende public boolean doWork() { _protocolEngine.clearWork(); - boolean closed = _closed.get(); + final boolean closed = _closed.get(); if (!closed) { try |
