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: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org

Reply via email to