[ https://issues.apache.org/jira/browse/QPIDJMS-461?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16866655#comment-16866655 ]
ASF GitHub Bot commented on QPIDJMS-461: ---------------------------------------- tabish121 commented on pull request #30: QPIDJMS-461 Optimize the default message ID builder URL: https://github.com/apache/qpid-jms/pull/30#discussion_r294856399 ########## File path: qpid-jms-client/src/main/java/org/apache/qpid/jms/message/JmsMessageIDBuilder.java ########## @@ -30,15 +30,34 @@ DEFAULT { @Override public JmsMessageIDBuilder createBuilder() { + + /** + * The default builder is meant to be used as a single instance per producer + * and will yield incorrect results if used across multiple producer instances. + */ return new JmsMessageIDBuilder() { + private final StringBuilder builder = new StringBuilder(); + private int idPrefixLength = 0; + @Override public Object createMessageID(String producerId, long messageSequence) { - String messageId = producerId + "-" + messageSequence; - if (!AmqpMessageIdHelper.hasMessageIdPrefix(messageId)) { - messageId = AmqpMessageIdHelper.JMS_ID_PREFIX + messageId; + builder.setLength(idPrefixLength); Review comment: Tweaked to address that issue ---------------------------------------------------------------- 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. For queries about this service, please contact Infrastructure at: us...@infra.apache.org > JmsMessageIDBuilder::createMessageID can save StringBuilder allocations > ----------------------------------------------------------------------- > > Key: QPIDJMS-461 > URL: https://issues.apache.org/jira/browse/QPIDJMS-461 > Project: Qpid JMS > Issue Type: Improvement > Affects Versions: 0.44.0 > Reporter: Francesco Nigro > Priority: Minor > Attachments: screenshot-1.png > > > JmsMessageIDBuilder::createMessageID doesn't seem able to correctly perform > escape analysis on StringBuilder, allocating many of them. > The intermediate StringBuilder could be saved into a thread local pool > instead, saving unnececessary allocations. -- This message was sent by Atlassian JIRA (v7.6.3#76005) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org