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)