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 2017/05/10 08:22:16 UTC
qpid-broker-j git commit: QPID-7769: [AMQP0-8..0-91] Avoid
possibility of the QBB going undisposed if field table decoding fails
Repository: qpid-broker-j
Updated Branches:
refs/heads/master 0ae8c00e1 -> 66a15452a
QPID-7769: [AMQP0-8..0-91] Avoid possibility of the QBB going undisposed if field table decoding fails
Made QBB's autoclosable so they may be used from try-with-resources.
Project: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/commit/66a15452
Tree: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/tree/66a15452
Diff: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/diff/66a15452
Branch: refs/heads/master
Commit: 66a15452ae1da2d2a3460db93505ac02764e6f5d
Parents: 0ae8c00
Author: Keith Wall <kw...@apache.org>
Authored: Wed May 10 09:20:32 2017 +0100
Committer: Keith Wall <kw...@apache.org>
Committed: Wed May 10 09:21:30 2017 +0100
----------------------------------------------------------------------
.../qpid/server/bytebuffer/QpidByteBuffer.java | 8 +++++-
.../qpid/server/protocol/v0_8/FieldTable.java | 26 +++++++++-----------
2 files changed, 18 insertions(+), 16 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/66a15452/broker-core/src/main/java/org/apache/qpid/server/bytebuffer/QpidByteBuffer.java
----------------------------------------------------------------------
diff --git a/broker-core/src/main/java/org/apache/qpid/server/bytebuffer/QpidByteBuffer.java b/broker-core/src/main/java/org/apache/qpid/server/bytebuffer/QpidByteBuffer.java
index ce02e46..f7a1905 100644
--- a/broker-core/src/main/java/org/apache/qpid/server/bytebuffer/QpidByteBuffer.java
+++ b/broker-core/src/main/java/org/apache/qpid/server/bytebuffer/QpidByteBuffer.java
@@ -45,7 +45,7 @@ import javax.net.ssl.SSLException;
import org.apache.qpid.server.streams.CompositeInputStream;
-public class QpidByteBuffer
+public class QpidByteBuffer implements AutoCloseable
{
private static final AtomicIntegerFieldUpdater<QpidByteBuffer>
DISPOSED_UPDATER = AtomicIntegerFieldUpdater.newUpdater(
@@ -125,6 +125,12 @@ public class QpidByteBuffer
return this;
}
+ @Override
+ public final void close()
+ {
+ dispose();
+ }
+
public final void dispose()
{
if (DISPOSED_UPDATER.compareAndSet(this, 0, 1))
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/66a15452/broker-core/src/main/java/org/apache/qpid/server/protocol/v0_8/FieldTable.java
----------------------------------------------------------------------
diff --git a/broker-core/src/main/java/org/apache/qpid/server/protocol/v0_8/FieldTable.java b/broker-core/src/main/java/org/apache/qpid/server/protocol/v0_8/FieldTable.java
index c8ba379..e183010 100644
--- a/broker-core/src/main/java/org/apache/qpid/server/protocol/v0_8/FieldTable.java
+++ b/broker-core/src/main/java/org/apache/qpid/server/protocol/v0_8/FieldTable.java
@@ -1147,29 +1147,24 @@ public class FieldTable
private void setFromBuffer() throws AMQFrameDecodingException
{
-
- final QpidByteBuffer slice = _encodedForm.slice();
-
if (_encodedSize > 0)
{
-
-
- _properties = new LinkedHashMap<>(INITIAL_HASHMAP_CAPACITY);
-
- do
+ try(QpidByteBuffer slice = _encodedForm.slice())
{
+ _properties = new LinkedHashMap<>(INITIAL_HASHMAP_CAPACITY);
- final AMQShortString key = AMQShortString.readAMQShortString(slice);
- AMQTypedValue value = AMQTypedValue.readFromBuffer(slice);
- _properties.put(key, value);
-
+ do
+ {
+ final AMQShortString key = AMQShortString.readAMQShortString(slice);
+ AMQTypedValue value = AMQTypedValue.readFromBuffer(slice);
+ _properties.put(key, value);
+ }
+ while (slice.hasRemaining());
}
- while (slice.hasRemaining());
-
}
- slice.dispose();
}
+ @Override
public int hashCode()
{
initMapIfNecessary();
@@ -1177,6 +1172,7 @@ public class FieldTable
return _properties.hashCode();
}
+ @Override
public boolean equals(Object o)
{
if (o == this)
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org