Keith Wall created QPID-6387:
--------------------------------
Summary: ChannelToSessionMap/IdToConsumerMap array optimisation
publishes in thread unsafe manner
Key: QPID-6387
URL: https://issues.apache.org/jira/browse/QPID-6387
Project: Qpid
Issue Type: Bug
Components: Java Client
Reporter: Keith Wall
Assignee: Keith Wall
Fix For: 0.31
Two internal classes within the Java Client (ChannelToSessionMap /
IdToConsumerMap) use an optimisation which hopes to permit 'fast access' first
sixteen sessions (or consumers) by making use on an array. The array is
written by one thread and then read by others. Unfortunately, the read/writes
are not protected using a memory barrier so it is possible a thread may see a
stale value, and this could lead to incorrect program behaviour.
It is safer (and simpler) to replace the data structure with one backed by a
ConcurrentHashMap.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]