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