summaryrefslogtreecommitdiff
path: root/qpid/java
diff options
context:
space:
mode:
authorKeith Wall <kwall@apache.org>2015-03-18 09:58:54 +0000
committerKeith Wall <kwall@apache.org>2015-03-18 09:58:54 +0000
commita7fe37b2e987097beb116f6344e7252c54dbef2c (patch)
tree7cd4de116bf5b1862c4db24dae1b91a9905ed63b /qpid/java
parentf4c3e204c54e95a898ce6a56b589ace853579485 (diff)
downloadqpid-python-a7fe37b2e987097beb116f6344e7252c54dbef2c.tar.gz
QPID-6429 : [Java Broker] Make maxidle/last read/write times volatile to avoid the risk of spurious disconnection owing to unsafe publication between threads
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1667475 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java')
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/transport/NonBlockingConnection.java4
-rwxr-xr-xqpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ProtocolEngine_0_10.java4
-rw-r--r--qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQProtocolEngine.java10
-rw-r--r--qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/ProtocolEngine_1_0_0_SASL.java4
4 files changed, 11 insertions, 11 deletions
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 f94ea0d0b0..8cec751825 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
@@ -71,8 +71,8 @@ public class NonBlockingConnection implements NetworkConnection, ByteBufferSende
private final Runnable _onTransportEncryptionAction;
- private int _maxReadIdle;
- private int _maxWriteIdle;
+ private volatile int _maxReadIdle;
+ private volatile int _maxWriteIdle;
private Principal _principal;
private boolean _principalChecked;
diff --git a/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ProtocolEngine_0_10.java b/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ProtocolEngine_0_10.java
index b448919188..dd20ff52ab 100755
--- a/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ProtocolEngine_0_10.java
+++ b/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ProtocolEngine_0_10.java
@@ -58,8 +58,8 @@ public class ProtocolEngine_0_10 extends InputHandler implements ServerProtocol
private ServerConnection _connection;
private long _createTime = System.currentTimeMillis();
- private long _lastReadTime = _createTime;
- private long _lastWriteTime = _createTime;
+ private volatile long _lastReadTime = _createTime;
+ private volatile long _lastWriteTime = _createTime;
private volatile boolean _transportBlockedForWriting;
private final AtomicReference<Thread> _messageAssignmentSuspended = new AtomicReference<>();
diff --git a/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQProtocolEngine.java b/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQProtocolEngine.java
index 9a80c870d7..0a64008a69 100644
--- a/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQProtocolEngine.java
+++ b/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQProtocolEngine.java
@@ -173,7 +173,7 @@ public class AMQProtocolEngine implements ServerProtocolEngine,
private LogSubject _logSubject;
- private long _lastIoTime;
+ private volatile long _lastIoTime;
private long _writtenBytes;
@@ -186,10 +186,10 @@ public class AMQProtocolEngine implements ServerProtocolEngine,
private ByteBufferSender _sender;
private volatile boolean _deferFlush;
- private long _lastReceivedTime = System.currentTimeMillis();
+ private volatile long _lastReceivedTime = System.currentTimeMillis();
+ private volatile long _lastWriteTime = System.currentTimeMillis();
private boolean _blocking;
- private AtomicLong _lastWriteTime = new AtomicLong(System.currentTimeMillis());
private final Broker<?> _broker;
private final Transport _transport;
@@ -557,7 +557,7 @@ public class AMQProtocolEngine implements ServerProtocolEngine,
final long time = System.currentTimeMillis();
_lastIoTime = time;
- _lastWriteTime.set(time);
+ _lastWriteTime = time;
if(!_deferFlush)
{
@@ -1922,7 +1922,7 @@ public class AMQProtocolEngine implements ServerProtocolEngine,
@Override
public long getLastWriteTime()
{
- return _lastWriteTime.get();
+ return _lastWriteTime;
}
public boolean isCloseWhenNoRoute()
diff --git a/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/ProtocolEngine_1_0_0_SASL.java b/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/ProtocolEngine_1_0_0_SASL.java
index 0cb83d33a7..454c3e53cf 100644
--- a/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/ProtocolEngine_1_0_0_SASL.java
+++ b/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/ProtocolEngine_1_0_0_SASL.java
@@ -79,8 +79,8 @@ public class ProtocolEngine_1_0_0_SASL implements ServerProtocolEngine, FrameOut
private long _readBytes;
private long _writtenBytes;
- private long _lastReadTime;
- private long _lastWriteTime;
+ private volatile long _lastReadTime;
+ private volatile long _lastWriteTime;
private final Broker<?> _broker;
private long _createTime = System.currentTimeMillis();
private ConnectionEndpoint _endpoint;