You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@geronimo.apache.org by "David Jencks (JIRA)" <ji...@apache.org> on 2006/11/16 23:09:37 UTC

[jira] Commented: (GERONIMO-2491) Hibernate passes connections between servlets which we don't support

    [ http://issues.apache.org/jira/browse/GERONIMO-2491?page=comments#action_12450553 ] 
            
David Jencks commented on GERONIMO-2491:
----------------------------------------

I haven't been able to test that the problem is actually fixed, but I think the new behavior described below is more correct in any case.

rev 475941 (trunk) and 475942 (sandbox/javaee5)

Use a single shared connector instance context to track connections as a servlet request goes through all its include/dispatch/etc calls.  Switch to a new instance context for each ejb call.  This should mean that connections can be passed around between servlets in a single request.

> Hibernate passes connections between servlets which we don't support
> --------------------------------------------------------------------
>
>                 Key: GERONIMO-2491
>                 URL: http://issues.apache.org/jira/browse/GERONIMO-2491
>             Project: Geronimo
>          Issue Type: Bug
>      Security Level: public(Regular issues) 
>          Components: connector
>    Affects Versions: 1.1.1, 1.2
>            Reporter: David Jencks
>         Assigned To: David Jencks
>             Fix For: 1.1.2, 1.2
>
>
> This is based on examination of roller running in geronimo-tomcat and is partly speculation.  There's certainly  a problem.
> 1. request sets InstanceContext 1 in ConnectionTrackingCoordinator.
> 2. roller starts a persistence context (in hibernate jargon a session) in a servlet filter.  No connection is opened yet
> 3. tiles dispatches to a jsp
> 4. dispatch sets InstanceContext 2 in CTC
> 5. jsp does something persistent causing hibernate to open a db connection.  This is registered with IC 2.
> 6. jsp dispatch returns, so IC 1 is set in CTC
> 7. roller commits the persistence context in the servlet filter, which closes the connection.  Closing the connection attempts to unregister from the current IC.  IC 1 doesn't know anything about this connection..... we get an NPE.
> The solution isn't clear to me at the moment.  

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