You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "Robbie Gemmell (Jira)" <ji...@apache.org> on 2021/09/03 17:08:00 UTC

[jira] [Resolved] (ARTEMIS-3459) AMQPMessage.scanMessageData() creates unecessary buffer wrapper

     [ https://issues.apache.org/jira/browse/ARTEMIS-3459?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Robbie Gemmell resolved ARTEMIS-3459.
-------------------------------------
    Resolution: Fixed

> AMQPMessage.scanMessageData() creates unecessary buffer wrapper
> ---------------------------------------------------------------
>
>                 Key: ARTEMIS-3459
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-3459
>             Project: ActiveMQ Artemis
>          Issue Type: Bug
>    Affects Versions: 2.18.0
>            Reporter: Robbie Gemmell
>            Assignee: Robbie Gemmell
>            Priority: Trivial
>             Fix For: 2.19.0
>
>
> The AMQPMessage.scanMessageData(ReadableBuffer) method creates an unecessary buffer wrapper on every decode. The method has the equivalent of:
> {code}
> decoder.setBuffer(data);
>  try {
>    //...use decoder..
>  } finally {
>    decoder.setByteBuffer(null);
>  }
> {code}
> Effectively it tries to use the thread-local decoder, then ensure the related buffer is discarded after.
> However the two setter uses are different, with the former taking the ReadableBuffer directly, and the latter method expected to be passed a ByteBuffer, which causes creation of a ReadableBuffer wrapper for it. By passing it null with that method, a needless wrapper object is created. One which is discarded on the next decode by that thread when it sets the next actual buffer. It should be using setBuffer(null).



--
This message was sent by Atlassian Jira
(v8.3.4#803005)