[ 
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

        

Reply via email to