You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by or...@apache.org on 2016/05/18 20:21:56 UTC

svn commit: r1744445 - in /qpid/java/branches/6.0.x: ./ broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/ broker-plugins/amqp-msg-conv-0-10-to-1-0/src/main/java/org/apache/qpid/server/protocol/converter/v0_10_v1_0/ br...

Author: orudyy
Date: Wed May 18 20:21:56 2016
New Revision: 1744445

URL: http://svn.apache.org/viewvc?rev=1744445&view=rev
Log:
QPID-7268 : Messages converted to AMQP 1.0 lose their body

merged from trunk using
svn merge -c 1744157   ^/qpid/java/trunk
conflicts resolved manually

Modified:
    qpid/java/branches/6.0.x/   (props changed)
    qpid/java/branches/6.0.x/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/MessageConverter_Internal_to_v1_0.java
    qpid/java/branches/6.0.x/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/MessageConverter_to_1_0.java
    qpid/java/branches/6.0.x/broker-plugins/amqp-msg-conv-0-10-to-1-0/src/main/java/org/apache/qpid/server/protocol/converter/v0_10_v1_0/MessageConverter_0_10_to_1_0.java
    qpid/java/branches/6.0.x/broker-plugins/amqp-msg-conv-0-8-to-1-0/src/main/java/org/apache/qpid/server/protocol/converter/v0_8_v1_0/MessageConverter_0_8_to_1_0.java

Propchange: qpid/java/branches/6.0.x/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed May 18 20:21:56 2016
@@ -9,5 +9,5 @@
 /qpid/branches/java-broker-vhost-refactor/java:1493674-1494547
 /qpid/branches/java-network-refactor/qpid/java:805429-821809
 /qpid/branches/qpid-2935/qpid/java:1061302-1072333
-/qpid/java/trunk:1715445-1715447,1715586,1715940,1716086-1716087,1716127-1716128,1716141,1716153,1716155,1716194,1716204,1716209,1716227,1716277,1716357,1716368,1716370,1716374,1716432,1716444-1716445,1716455,1716461,1716474,1716489,1716497,1716515,1716555,1716602,1716606-1716610,1716619,1716636,1717269,1717299,1717401,1717446,1717449,1717626,1717691,1717735,1717780,1718744,1718889,1718893,1718918,1718922,1719026,1719028,1719033,1719037,1719047,1719051,1720340,1720664,1721151,1721198,1722019-1722020,1722246,1722339,1722416,1722674,1722678,1722683,1722711,1723064,1723194,1723563,1724216,1724251,1724257,1724292,1724375,1724397,1724432,1724582,1724603,1724780,1724843-1724844,1725295,1725569,1725760,1726176,1726244-1726246,1726249,1726358,1726436,1726449,1726456,1726646,1726653,1726755,1726778,1727532,1727555,1727608,1727951,1727954,1728089,1728167,1728302,1728497,1728501,1728524,1728639,1728651,1728772,1729215,1729297,1729347,1729356,1729406,1729408,1729412,1729515,1729638,1729656-1729
 657,1729783,1729828,1729832,1729841,1729851,1729886,1729904,1729973,1730019,1730025,1730052,1730072,1730088,1730494,1730499,1730547,1730559,1730567,1730578,1730585,1730651,1730697,1730712-1730713,1730805,1731029,1731110,1731210,1731225,1731444,1731551,1731612,1732184,1732452,1732461,1732525,1732812,1733467,1734452,1736478,1736751,1736838,1737804,1737835,1737853,1737984,1737992,1738119,1738135,1738231,1738271,1738607,1738610,1738731,1738914,1741702,1742257,1742284,1742544,1742900,1742926,1743161,1743228,1743383,1743982,1744012-1744013,1744046,1744123,1744276,1744403
+/qpid/java/trunk:1715445-1715447,1715586,1715940,1716086-1716087,1716127-1716128,1716141,1716153,1716155,1716194,1716204,1716209,1716227,1716277,1716357,1716368,1716370,1716374,1716432,1716444-1716445,1716455,1716461,1716474,1716489,1716497,1716515,1716555,1716602,1716606-1716610,1716619,1716636,1717269,1717299,1717401,1717446,1717449,1717626,1717691,1717735,1717780,1718744,1718889,1718893,1718918,1718922,1719026,1719028,1719033,1719037,1719047,1719051,1720340,1720664,1721151,1721198,1722019-1722020,1722246,1722339,1722416,1722674,1722678,1722683,1722711,1723064,1723194,1723563,1724216,1724251,1724257,1724292,1724375,1724397,1724432,1724582,1724603,1724780,1724843-1724844,1725295,1725569,1725760,1726176,1726244-1726246,1726249,1726358,1726436,1726449,1726456,1726646,1726653,1726755,1726778,1727532,1727555,1727608,1727951,1727954,1728089,1728167,1728302,1728497,1728501,1728524,1728639,1728651,1728772,1729215,1729297,1729347,1729356,1729406,1729408,1729412,1729515,1729638,1729656-1729
 657,1729783,1729828,1729832,1729841,1729851,1729886,1729904,1729973,1730019,1730025,1730052,1730072,1730088,1730494,1730499,1730547,1730559,1730567,1730578,1730585,1730651,1730697,1730712-1730713,1730805,1731029,1731110,1731210,1731225,1731444,1731551,1731612,1732184,1732452,1732461,1732525,1732812,1733467,1734452,1736478,1736751,1736838,1737804,1737835,1737853,1737984,1737992,1738119,1738135,1738231,1738271,1738607,1738610,1738731,1738914,1741702,1742257,1742284,1742544,1742900,1742926,1743161,1743228,1743383,1743982,1744012-1744013,1744046,1744123,1744157,1744276,1744403
 /qpid/trunk/qpid:796646-796653

Modified: qpid/java/branches/6.0.x/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/MessageConverter_Internal_to_v1_0.java
URL: http://svn.apache.org/viewvc/qpid/java/branches/6.0.x/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/MessageConverter_Internal_to_v1_0.java?rev=1744445&r1=1744444&r2=1744445&view=diff
==============================================================================
--- qpid/java/branches/6.0.x/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/MessageConverter_Internal_to_v1_0.java (original)
+++ qpid/java/branches/6.0.x/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/MessageConverter_Internal_to_v1_0.java Wed May 18 20:21:56 2016
@@ -57,7 +57,7 @@ public class MessageConverter_Internal_t
 
     @Override
     protected MessageMetaData_1_0 convertMetaData(final InternalMessage serverMessage,
-                                                  final SectionEncoder sectionEncoder)
+                                                  final Section bodySection, final SectionEncoder sectionEncoder)
     {
         List<Section> sections = new ArrayList<Section>(3);
         Header header = new Header();
@@ -89,6 +89,10 @@ public class MessageConverter_Internal_t
             ApplicationProperties applicationProperties = new ApplicationProperties(serverMessage.getMessageHeader().getHeaderMap() );
             sections.add(applicationProperties);
         }
+        if(bodySection != null)
+        {
+            sections.add(bodySection);
+        }
         return new MessageMetaData_1_0(sections, sectionEncoder);
 
     }

Modified: qpid/java/branches/6.0.x/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/MessageConverter_to_1_0.java
URL: http://svn.apache.org/viewvc/qpid/java/branches/6.0.x/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/MessageConverter_to_1_0.java?rev=1744445&r1=1744444&r2=1744445&view=diff
==============================================================================
--- qpid/java/branches/6.0.x/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/MessageConverter_to_1_0.java (original)
+++ qpid/java/branches/6.0.x/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/MessageConverter_to_1_0.java Wed May 18 20:21:56 2016
@@ -74,11 +74,15 @@ public abstract class MessageConverter_t
 
     private StoredMessage<MessageMetaData_1_0> convertToStoredMessage(final M serverMessage, SectionEncoder sectionEncoder)
     {
-        final MessageMetaData_1_0 metaData = convertMetaData(serverMessage, sectionEncoder);
-        return convertServerMessage(metaData, serverMessage, sectionEncoder);
+        Section bodySection = getBodySection(serverMessage);
+
+        final MessageMetaData_1_0 metaData = convertMetaData(serverMessage, bodySection, sectionEncoder);
+        return convertServerMessage(metaData, serverMessage);
     }
 
-    abstract protected MessageMetaData_1_0 convertMetaData(final M serverMessage, SectionEncoder sectionEncoder);
+    abstract protected MessageMetaData_1_0 convertMetaData(final M serverMessage,
+                                                           final Section bodySection,
+                                                           SectionEncoder sectionEncoder);
 
 
     private static Section convertMessageBody(String mimeType, byte[] data)
@@ -203,26 +207,19 @@ public abstract class MessageConverter_t
     }
 
     private StoredMessage<MessageMetaData_1_0> convertServerMessage(final MessageMetaData_1_0 metaData,
-                                                                      final M serverMessage,
-                                                                      SectionEncoder sectionEncoder)
+                                                                    final M serverMessage)
     {
-        final String mimeType = serverMessage.getMessageHeader().getMimeType();
-        byte[] data = new byte[(int) serverMessage.getSize()];
-        serverMessage.getContent(ByteBuffer.wrap(data));
-        byte[] uncompressed;
 
-        if(Symbol.valueOf(GZIPUtils.GZIP_CONTENT_ENCODING).equals(metaData.getPropertiesSection().getContentEncoding())
-                && (uncompressed = GZIPUtils.uncompressBufferToArray(ByteBuffer.wrap(data)))!=null)
+        final QpidByteBuffer allData = QpidByteBuffer.allocateDirect(metaData.getStorableSize());
+        metaData.writeToBuffer(allData);
+        allData.rewind();
+
+        if(metaData.getPropertiesSection() != null)
         {
-            data = uncompressed;
             metaData.getPropertiesSection().setContentEncoding(null);
         }
 
 
-        Section bodySection = convertMessageBody(mimeType, data);
-
-        final QpidByteBuffer allData = encodeConvertedMessage(metaData, bodySection, sectionEncoder);
-
         return new StoredMessage<MessageMetaData_1_0>()
                     {
                         @Override
@@ -283,17 +280,20 @@ public abstract class MessageConverter_t
         };
     }
 
-    private QpidByteBuffer encodeConvertedMessage(MessageMetaData_1_0 metaData, Section bodySection, SectionEncoder sectionEncoder)
+    private Section getBodySection(final M serverMessage)
     {
-        int headerSize = (int) metaData.getStorableSize();
+        final String mimeType = serverMessage.getMessageHeader().getMimeType();
+        byte[] data = new byte[(int) serverMessage.getSize()];
+        serverMessage.getContent(ByteBuffer.wrap(data));
+        byte[] uncompressed;
 
-        sectionEncoder.reset();
-        sectionEncoder.encodeObject(bodySection);
-        Binary dataEncoding = sectionEncoder.getEncoding();
+        if(Symbol.valueOf(GZIPUtils.GZIP_CONTENT_ENCODING).equals(serverMessage.getMessageHeader().getEncoding())
+           && (uncompressed = GZIPUtils.uncompressBufferToArray(ByteBuffer.wrap(data)))!=null)
+        {
+            data = uncompressed;
+        }
 
-        final QpidByteBuffer allData = QpidByteBuffer.allocateDirect(headerSize + dataEncoding.getLength());
-        metaData.writeToBuffer(allData);
-        allData.put(dataEncoding.getArray(),dataEncoding.getArrayOffset(),dataEncoding.getLength());
-        return allData;
+        return convertMessageBody(mimeType, data);
     }
+
 }

Modified: qpid/java/branches/6.0.x/broker-plugins/amqp-msg-conv-0-10-to-1-0/src/main/java/org/apache/qpid/server/protocol/converter/v0_10_v1_0/MessageConverter_0_10_to_1_0.java
URL: http://svn.apache.org/viewvc/qpid/java/branches/6.0.x/broker-plugins/amqp-msg-conv-0-10-to-1-0/src/main/java/org/apache/qpid/server/protocol/converter/v0_10_v1_0/MessageConverter_0_10_to_1_0.java?rev=1744445&r1=1744444&r2=1744445&view=diff
==============================================================================
--- qpid/java/branches/6.0.x/broker-plugins/amqp-msg-conv-0-10-to-1-0/src/main/java/org/apache/qpid/server/protocol/converter/v0_10_v1_0/MessageConverter_0_10_to_1_0.java (original)
+++ qpid/java/branches/6.0.x/broker-plugins/amqp-msg-conv-0-10-to-1-0/src/main/java/org/apache/qpid/server/protocol/converter/v0_10_v1_0/MessageConverter_0_10_to_1_0.java Wed May 18 20:21:56 2016
@@ -55,7 +55,7 @@ public class MessageConverter_0_10_to_1_
 
     @Override
     protected MessageMetaData_1_0 convertMetaData(MessageTransferMessage serverMessage,
-                                                  SectionEncoder sectionEncoder)
+                                                  final Section bodySection, SectionEncoder sectionEncoder)
     {
         List<Section> sections = new ArrayList<Section>(3);
         final MessageProperties msgProps = serverMessage.getHeader().getMessageProperties();
@@ -143,6 +143,10 @@ public class MessageConverter_0_10_to_1_
 
             }
         }
+        if(bodySection != null)
+        {
+            sections.add(bodySection);
+        }
         return new MessageMetaData_1_0(sections, sectionEncoder);
     }
 

Modified: qpid/java/branches/6.0.x/broker-plugins/amqp-msg-conv-0-8-to-1-0/src/main/java/org/apache/qpid/server/protocol/converter/v0_8_v1_0/MessageConverter_0_8_to_1_0.java
URL: http://svn.apache.org/viewvc/qpid/java/branches/6.0.x/broker-plugins/amqp-msg-conv-0-8-to-1-0/src/main/java/org/apache/qpid/server/protocol/converter/v0_8_v1_0/MessageConverter_0_8_to_1_0.java?rev=1744445&r1=1744444&r2=1744445&view=diff
==============================================================================
--- qpid/java/branches/6.0.x/broker-plugins/amqp-msg-conv-0-8-to-1-0/src/main/java/org/apache/qpid/server/protocol/converter/v0_8_v1_0/MessageConverter_0_8_to_1_0.java (original)
+++ qpid/java/branches/6.0.x/broker-plugins/amqp-msg-conv-0-8-to-1-0/src/main/java/org/apache/qpid/server/protocol/converter/v0_8_v1_0/MessageConverter_0_8_to_1_0.java Wed May 18 20:21:56 2016
@@ -53,7 +53,9 @@ public class MessageConverter_0_8_to_1_0
         return AMQMessage.class;
     }
 
-    protected MessageMetaData_1_0 convertMetaData(final AMQMessage serverMessage, SectionEncoder sectionEncoder)
+    protected MessageMetaData_1_0 convertMetaData(final AMQMessage serverMessage,
+                                                  final Section bodySection,
+                                                  SectionEncoder sectionEncoder)
     {
 
         List<Section> sections = new ArrayList<>(3);
@@ -164,7 +166,10 @@ public class MessageConverter_0_8_to_1_0
             applicationProperties.remove("qpid.subject");
         }
         sections.add(new ApplicationProperties(applicationProperties));
-
+        if(bodySection != null)
+        {
+            sections.add(bodySection);
+        }
         return new MessageMetaData_1_0(sections, sectionEncoder);
     }
 



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org