gemmellr commented on code in PR #4888:
URL: https://github.com/apache/activemq-artemis/pull/4888#discussion_r1567054654


##########
artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/broker/AMQPMessage.java:
##########
@@ -825,8 +826,14 @@ protected ReadableBuffer createDeliveryCopy(int 
deliveryCount, DeliveryAnnotatio
       }
 
       writeDeliveryAnnotationsForSendBuffer(result, deliveryAnnotations);
-      // skip existing delivery annotations of the original message
-      duplicate.position(encodedHeaderSize + encodedDeliveryAnnotationsSize);
+
+      if (headerPosition > deliveryAnnotationsPosition && headerPosition != 
VALUE_NOT_PRESENT && deliveryAnnotationsPosition != VALUE_NOT_PRESENT) {
+         // this is for a case where delivery annotations was swiched wrongly 
in a previous version
+         duplicate.position(deliveryAnnotationsPosition + 
encodedDeliveryAnnotationsSize);

Review Comment:
   I dont really understand this. Is it trying to _handle_ the 
delivery-annotations having been written in the wrong place, in front of the 
header, in an old brokers stored message that gets sent?
   
   If so, how does setting the position to the end of the delivery annotations 
do that? Wouldnt that mean it was now positioned at the start of the 
illegally-positioned header...which we have already just written [if needed] 
previously a few lines earlier in this method?



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to