[
https://issues.apache.org/jira/browse/AMQ-3430?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Torsten Mielke updated AMQ-3430:
--------------------------------
Attachment: AMQ-3430.patch
Attaching a possible fix including some logging for SessionPool.java
It was necessary to add a public method ActiveMQSession.isClosed() for checking
if a session is closed.
> activemq-web: SessionPool.returnSession() should discard sessions that are
> closed.
> -----------------------------------------------------------------------------------
>
> Key: AMQ-3430
> URL: https://issues.apache.org/jira/browse/AMQ-3430
> Project: ActiveMQ
> Issue Type: Bug
> Components: Broker
> Affects Versions: 5.5.0, 5.6.0
> Reporter: Torsten Mielke
> Labels: SessionPool, activemq-web-console,
> Fix For: 5.6.0
>
> Attachments: AMQ-3430.patch
>
>
> In activemq.web project, SessionPool.returnSession() does not check if the
> session is still open. As long as the session isn't null, its returned back
> to the pool.
> At least one customer reported a problem when using the web console for
> browsing a queue, where the session was already closed.
> {noformat}
> javax.jms.IllegalStateException: The Session is closed
> at org.apache.activemq.ActiveMQSession.checkClosed(ActiveMQSession.java:722)
> at org.apache.activemq.ActiveMQSession.createQueue(ActiveMQSession.java:1141)
> at org.apache.activemq.web.QueueBrowseQuery.getQueue(QueueBrowseQuery.java:65)
> at
> org.apache.activemq.web.QueueBrowseQuery.createBrowser(QueueBrowseQuery.java:91)
> at
> org.apache.activemq.web.QueueBrowseQuery.getBrowser(QueueBrowseQuery.java:54)
> at sun.reflect.GeneratedMethodAccessor125.invoke(Unknown Source)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at javax.el.BeanELResolver.getValue(BeanELResolver.java:62)
> ...
> {noformat}
> Not sure what triggered the closure of the session, however once it is closed
> it should not be returned to the pool but be discarded. If its not discarded,
> then the pool will always return the closed session and any invocations on
> the session return an exception. Restarting the broker is the only remedy.
>
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira