summaryrefslogtreecommitdiff
path: root/qpid/java
diff options
context:
space:
mode:
authorKeith Wall <kwall@apache.org>2015-02-13 14:39:48 +0000
committerKeith Wall <kwall@apache.org>2015-02-13 14:39:48 +0000
commit44def49f41ce041b740ecbfc11147c9def35b9e7 (patch)
tree92c09faef1c500588c3aa1a434b733456c2ca03d /qpid/java
parent762aa71a99d13cb3f7efd29cb95098eadafb5396 (diff)
downloadqpid-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')
-rwxr-xr-xqpid/java/broker-core/src/main/java/org/apache/qpid/server/protocol/MultiVersionProtocolEngine.java13
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/transport/NonBlockingConnection.java2
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