activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Torsten Mielke (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (AMQ-3430) activemq-web: SessionPool.returnSession() should discard sessions that are closed.
Date Mon, 01 Aug 2011 10:43:10 GMT

     [ 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

        

Mime
View raw message