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
             Fix For: 5.6.0


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