[
https://issues.apache.org/jira/browse/AMQ-4441?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Timothy Bish resolved AMQ-4441.
-------------------------------
Resolution: Fixed
Fix Version/s: 5.9.0
Assignee: Timothy Bish
Fixed on trunk, will update in the next nightly.
> Race condition in PooledConnectionFactory.createConnection
> ----------------------------------------------------------
>
> Key: AMQ-4441
> URL: https://issues.apache.org/jira/browse/AMQ-4441
> Project: ActiveMQ
> Issue Type: Bug
> Components: activemq-pool
> Affects Versions: 5.8.0
> Reporter: Andrei N.Sobchuck
> Assignee: Timothy Bish
> Fix For: 5.9.0
>
> Attachments: AMQ_4441.java
>
>
> `PooledConnectionFactory.createConnection(String userName, String password)`
> can return broken Connection. By `broken` I mean PooledConnection with
> referenceCount==1, but without underlying ActiveMQConnection.
> The problem is in lines
> {code}
> connection = connectionsPool.borrowObject(key);
> ...
> return new PooledConnection(connection);
> {code}
> While method `borrowObject` validates the connection and `new
> PooledConnection` increments referenceCount, it's possible that some thread
> calls `ConnectionPool.decrementReferenceCount()` just between `borrowObject`
> and `new PooledConnection`. referenceCount at this stage can be a zero and
> the ConnectionPool became closed just prior to `new PooledConnection`.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira