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.