You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "Christopher L. Shannon (JIRA)" <ji...@apache.org> on 2016/03/22 17:18:25 UTC

[jira] [Resolved] (AMQ-6221) ActiveMQTextMessage should synchronize on state changes

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

Christopher L. Shannon resolved AMQ-6221.
-----------------------------------------
    Resolution: Fixed

Fix applied, a test will be included as part of AMQ-6222 which can be used to debug both this issue and AMQ-6218

> ActiveMQTextMessage should synchronize on state changes
> -------------------------------------------------------
>
>                 Key: AMQ-6221
>                 URL: https://issues.apache.org/jira/browse/AMQ-6221
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker, JMS client
>    Affects Versions: 5.13.2
>            Reporter: Christopher L. Shannon
>            Assignee: Christopher L. Shannon
>             Fix For: 5.14.0
>
>
> In AMQ-5857, the text field was changed to be cleared after calling beforeMarshall on a text message.  This is causing general concurrency issues when multiple threads access the message.  The most notable issue is when using the VM transport and concurrent store and dispatch is turned on for KahaDB as seen in AMQ-6218.  In that ticket I re-arranged the order a bit on copy to help with the race condition but it is still theoretically possible.  We need to add explicit synchronization when reading/writing the marshalled/unmarshalled state fields to prevent the race condition in ActiveMQTextMessage.
> Right now ActiveMQTextMessage is the main issue since it has been changed to clear out text on marshalling by default.   Map and Object messages don't currently clear out their data by default like text message does so they aren't currently affected but would need synchronization added in a future commit if the same strategy was followed.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)