[
https://issues.apache.org/jira/browse/QPID-3806?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Weston M. Price resolved QPID-3806.
-----------------------------------
Resolution: Fixed
Fixed in trunk with provided patch.
> QpidRASessionFactoryImpl closeSession() method incorrectly calls remove on
> HashSet
> -----------------------------------------------------------------------------------
>
> Key: QPID-3806
> URL: https://issues.apache.org/jira/browse/QPID-3806
> Project: Qpid
> Issue Type: Bug
> Components: JCA
> Environment: All OS platforms, Geronimo 2.x AS
> Reporter: Weston M. Price
> Assignee: Weston M. Price
> Fix For: 0.15
>
> Attachments: QPID-3806.patch
>
>
> Currently in the QpidRASessionFactoryImpl when a session is closed we call
> _sessions.remove(Session) to remove the Session from the HashSet. This
> HashSet is used to ensure that we conform to J2EE1.4 6.6 spec where only one
> session can be created for a connection in a JEE environment. Being that
> HashSet uses the equals() method to determine if the object is in the set,
> this does not work for application servers that Proxy the session. As such,
> the underlying session is never removed from the HashSet and attempting any
> other operation on the connection fails being that the adapter thinks that
> multiple sessions exist. Since we only use the HashSet to prevent multiple
> session creation, we should call _sessions.clear() on a close to ensure the
> correct behavior.
> Also, any direct use of QpidRASessionImpl should be refactored to use the
> QpidRASession interface rather than the Impl class as this will cause
> ClassCastExceptions when used with a Proxy.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]