[jbossseam-issues] [JBoss JIRA] Updated: (JBSEAM-4332) HTTP sessions expiration cause a "javax.naming.ConfigurationException" while trying to "Destroy" the EntityManager components in WebSphere

Denis Forveille (JIRA) jira-events at lists.jboss.org
Fri Jul 31 13:24:29 EDT 2009


     [ https://jira.jboss.org/jira/browse/JBSEAM-4332?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Denis Forveille updated JBSEAM-4332:
------------------------------------

    Description: 
In WebSphere when the HTTP user session expires, the Seam session listener intercepts the event and try to clean all the pending components
A call to the method annotated "@Destroy" is called on EntityManager (ie method destroy())
This methods checks if there is an active Transaction to throw an exception in case there is one. For this it performs a JNDI lookup on java:comp/env/UserTransaction
In this context, the lookup fails with a javax.naming.ConfigurationException in WebSphere because it is illegal to do such operation in such a thread (The one spawned by WebSphere to timeout the session) and the EntityManager is never closed and the whole clean process fails..
This can be corrected by intercepting the exception in the ManagedPersistenceContext.close() method and continue with the close operation on the EntityManager


  was:
In WebSphere when the HTTP user session expires, the Seam session listener intercepts the event and try to clean all the pending components
A call to the method annotated "@Destroy" is called on EntityManager (ie method close())
This methods checks if there is an active Transaction to throw an exception in case there is an active transaction. For this it performs a JNDI lookup on java:comp/env/UserTransaction
In this context, the lookup fails with a javax.naming.ConfigurationException in WebSphere because it is illegal to do such operation in such a thread (The one spawned by WebSphere to timeout the session) and the EntityManager is never closed and the whole clean process fails..
This can be corrected by intercepting the exception in the ManagedPersistenceContext.close() method and continue with the close operation on the EntityManager




> HTTP sessions expiration cause a "javax.naming.ConfigurationException" while trying to "Destroy" the EntityManager components in WebSphere
> ------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: JBSEAM-4332
>                 URL: https://jira.jboss.org/jira/browse/JBSEAM-4332
>             Project: Seam
>          Issue Type: Bug
>    Affects Versions: 2.2.0.GA
>         Environment: Seam 2.2.0 GA, WebSphere 7.0.0.5
>            Reporter: Denis Forveille
>            Assignee: Denis Forveille
>             Fix For: 2.2.1.CR1
>
>         Attachments: traceback.txt
>
>
> In WebSphere when the HTTP user session expires, the Seam session listener intercepts the event and try to clean all the pending components
> A call to the method annotated "@Destroy" is called on EntityManager (ie method destroy())
> This methods checks if there is an active Transaction to throw an exception in case there is one. For this it performs a JNDI lookup on java:comp/env/UserTransaction
> In this context, the lookup fails with a javax.naming.ConfigurationException in WebSphere because it is illegal to do such operation in such a thread (The one spawned by WebSphere to timeout the session) and the EntityManager is never closed and the whole clean process fails..
> This can be corrected by intercepting the exception in the ManagedPersistenceContext.close() method and continue with the close operation on the EntityManager

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the seam-issues mailing list