You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by lq...@apache.org on 2017/05/02 11:40:44 UTC
[3/3] qpid-broker-j git commit: QPID-7753: fix 0-9 and tests
QPID-7753: fix 0-9 and tests
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/085dca33
Tree: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/tree/085dca33
Diff: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/diff/085dca33
Branch: refs/heads/master
Commit: 085dca3397900ca277c36b71ca2e7e7aa6b80b3a
Parents: a6b39f2
Author: Lorenz Quack <lq...@apache.org>
Authored: Tue May 2 12:14:26 2017 +0100
Committer: Lorenz Quack <lq...@apache.org>
Committed: Tue May 2 12:14:26 2017 +0100
----------------------------------------------------------------------
.../qpid/server/protocol/v0_8/FieldTable.java | 58 ++++++++++++--------
.../server/bytebuffer/QpidByteBufferTest.java | 2 -
.../protocol/v0_8/transport/AMQFrame.java | 4 +-
.../transport/BasicContentHeaderProperties.java | 4 ++
.../qpid/tests/protocol/v1_0/OutputHandler.java | 1 -
5 files changed, 42 insertions(+), 27 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/085dca33/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 70289f4..63c4b10 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
@@ -87,7 +87,7 @@ public class FieldTable
_encodedSize = buffer.remaining();
}
- public boolean isClean()
+ public synchronized boolean isClean()
{
return _encodedForm != null;
}
@@ -137,26 +137,30 @@ public class FieldTable
private AMQTypedValue setProperty(AMQShortString key, AMQTypedValue val)
{
checkPropertyName(key);
- initMapIfNecessary();
- if (_properties.containsKey(key))
+
+ synchronized (this)
{
- _encodedForm = null;
+ initMapIfNecessary();
+ if (_properties.containsKey(key))
+ {
+ _encodedForm = null;
- if (val == null)
+ if (val == null)
+ {
+ return removeKey(key);
+ }
+ }
+ else if ((_encodedForm != null) && (val != null))
{
- return removeKey(key);
+ // We have updated data to store in the buffer
+ // So clear the _encodedForm to allow it to be rebuilt later
+ // this is safer than simply appending to any existing buffer.
+ _encodedForm = null;
+ }
+ else if (val == null)
+ {
+ return null;
}
- }
- else if ((_encodedForm != null) && (val != null))
- {
- // We have updated data to store in the buffer
- // So clear the _encodedForm to allow it to be rebuilt later
- // this is safer than simply appending to any existing buffer.
- _encodedForm = null;
- }
- else if (val == null)
- {
- return null;
}
AMQTypedValue oldVal = _properties.put(key, val);
@@ -831,7 +835,7 @@ public class FieldTable
}
- public byte[] getDataAsBytes()
+ public synchronized byte[] getDataAsBytes()
{
if(_encodedForm == null)
{
@@ -872,7 +876,7 @@ public class FieldTable
_encodedSize = encodedSize;
}
- public void addAll(FieldTable fieldTable)
+ public synchronized void addAll(FieldTable fieldTable)
{
initMapIfNecessary();
fieldTable.initMapIfNecessary();
@@ -958,6 +962,11 @@ public class FieldTable
}
}
+ public synchronized void reallocate(final long smallestAllowedBufferId)
+ {
+ _encodedForm = QpidByteBuffer.reallocateIfNecessary(smallestAllowedBufferId, _encodedForm);
+ }
+
public static interface FieldTableElementProcessor
{
@@ -1060,8 +1069,11 @@ public class FieldTable
public AMQTypedValue removeKey(AMQShortString key)
{
- initMapIfNecessary();
- _encodedForm = null;
+ synchronized (this)
+ {
+ initMapIfNecessary();
+ _encodedForm = null;
+ }
AMQTypedValue value = _properties.remove(key);
if (value == null)
{
@@ -1078,7 +1090,7 @@ public class FieldTable
}
- public void clear()
+ public synchronized void clear()
{
initMapIfNecessary();
if (_encodedForm != null)
@@ -1099,7 +1111,7 @@ public class FieldTable
return _properties.keySet();
}
- private void putDataInBuffer(QpidByteBuffer buffer)
+ private synchronized void putDataInBuffer(QpidByteBuffer buffer)
{
if (_encodedForm != null)
{
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/085dca33/broker-core/src/test/java/org/apache/qpid/server/bytebuffer/QpidByteBufferTest.java
----------------------------------------------------------------------
diff --git a/broker-core/src/test/java/org/apache/qpid/server/bytebuffer/QpidByteBufferTest.java b/broker-core/src/test/java/org/apache/qpid/server/bytebuffer/QpidByteBufferTest.java
index c5a91fb..6377a3b 100644
--- a/broker-core/src/test/java/org/apache/qpid/server/bytebuffer/QpidByteBufferTest.java
+++ b/broker-core/src/test/java/org/apache/qpid/server/bytebuffer/QpidByteBufferTest.java
@@ -899,8 +899,6 @@ public class QpidByteBufferTest extends QpidTestCase
int inflatedBytesTotal = 0;
for(QpidByteBuffer inflatedBuf : inflatedBufs)
{
- assertEquals("Inflated buf " + bufNum + " is of wrong type", direct, inflatedBuf.isDirect());
-
int inflatedBytesCount = inflatedBuf.remaining();
inflatedBytesTotal += inflatedBytesCount;
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/085dca33/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/transport/AMQFrame.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/transport/AMQFrame.java b/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/transport/AMQFrame.java
index 68982a3..bcf01e1 100644
--- a/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/transport/AMQFrame.java
+++ b/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/transport/AMQFrame.java
@@ -68,7 +68,9 @@ public class AMQFrame extends AMQDataBlock implements EncodableAMQDataBlock
frameHeader.dispose();
long size = 8 + _bodyFrame.writePayload(sender);
- sender.send(FRAME_END_BYTE_BUFFER.duplicate());
+ final QpidByteBuffer endFrame = FRAME_END_BYTE_BUFFER.duplicate();
+ sender.send(endFrame);
+ endFrame.dispose();
return size;
}
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/085dca33/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/transport/BasicContentHeaderProperties.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/transport/BasicContentHeaderProperties.java b/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/transport/BasicContentHeaderProperties.java
index d01ce6b..00f9ac1 100644
--- a/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/transport/BasicContentHeaderProperties.java
+++ b/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/transport/BasicContentHeaderProperties.java
@@ -972,5 +972,9 @@ public class BasicContentHeaderProperties
synchronized void reallocate(final long smallestAllowedBufferId)
{
_encodedForm = QpidByteBuffer.reallocateIfNecessary(smallestAllowedBufferId, _encodedForm);
+ if (_headers != null)
+ {
+ _headers.reallocate(smallestAllowedBufferId);
+ }
}
}
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/085dca33/systests/protocol-tests-amqp-1-0/src/main/java/org/apache/qpid/tests/protocol/v1_0/OutputHandler.java
----------------------------------------------------------------------
diff --git a/systests/protocol-tests-amqp-1-0/src/main/java/org/apache/qpid/tests/protocol/v1_0/OutputHandler.java b/systests/protocol-tests-amqp-1-0/src/main/java/org/apache/qpid/tests/protocol/v1_0/OutputHandler.java
index 9ca919f..5099523 100644
--- a/systests/protocol-tests-amqp-1-0/src/main/java/org/apache/qpid/tests/protocol/v1_0/OutputHandler.java
+++ b/systests/protocol-tests-amqp-1-0/src/main/java/org/apache/qpid/tests/protocol/v1_0/OutputHandler.java
@@ -64,7 +64,6 @@ public class OutputHandler extends ChannelOutboundHandlerAdapter
{
ByteBuf buffer = ByteBufAllocator.DEFAULT.buffer();
buffer.writeBytes(msg.asByteBuffer());
- msg.dispose();
try
{
OutputHandler.super.write(ctx, buffer, promise);
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org