gemmellr commented on code in PR #5220: URL: https://github.com/apache/activemq-artemis/pull/5220#discussion_r1863299369
########## artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/connect/mirror/AMQPMirrorControllerSource.java: ########## @@ -543,6 +602,17 @@ public void preAcknowledge(final Transaction tx, final MessageReference ref, fin logger.trace("preAcknowledge::tx={}, ref={}, reason={}", tx, ref, reason); } + SimpleString noForwardSource = null; + if (Boolean.TRUE.equals(ref.getMessage().getBooleanProperty(INTERNAL_NO_FORWARD))) { + noForwardSource = (SimpleString) ref.getMessage().getBrokerProperty(INTERNAL_NO_FORWARD_SOURCE); Review Comment: Seems to be the fault of setBrokerProperty() using TypedProperties for 'extra properties' (as well as setting a message annotation if AMQP message), which converts a String value to a SimpleString :/ I'd check the exact behaviour first, but I'd be inclined to flip the behaviour so it checks with a String instead, i.e that it null checks then does String.valueOf to get a String for the comparison. That way its not creating new SimpleString from the [typically same] remoteMirrorId value for every message checked, but instead just getting the String from the SimpleString (that likely already exists because it was created from a String). -- 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: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For additional commands, e-mail: gitbox-h...@activemq.apache.org For further information, visit: https://activemq.apache.org/contact