but the following forums seem dead.

I am horrified by the following code causing a untime exception because I want 
to make sure hibernate session is closed but even though the session is null, 
it appears to be open still?


finally {
            if(session!=null){
                session.close();
            }
        }
/I don't want a memory leak but it appears that the following exception is 
thrown with the above code...
root cause 

org.hibernate.SessionException: Session was already closed
        org.hibernate.impl.SessionImpl.close(SessionImpl.java:302)
        sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        java.lang.reflect.Method.invoke(Method.java:597)
        
org.hibernate.context.ThreadLocalSessionContext$TransactionProtectionWrapper.invoke(ThreadLocalSessionContext.java:342)
        $Proxy0.close(Unknown Source)
        
org.bar.jar.model.UserManagerBean.getAllEntities(UserManagerBean.java:120)
        sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        java.lang.reflect.Method.invoke(Method.java:597)
        javax.el.BeanELResolver.getValue(BeanELResolver.java:62)
        javax.el.CompositeELResolver.getValue(CompositeELResolver.java:54)
        
com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:72)
        org.apache.el.parser.AstValue.getValue(AstValue.java:123)
        org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
        
org.apache.jasper.el.JspValueExpression.getValue(JspValueExpression.java:101)
        javax.faces.component.UIData.getValue(UIData.java:614)
        javax.faces.component.UIData.getDataModel(UIData.java:1145)
        javax.faces.component.UIData.setRowIndex(UIData.java:451)
        
com.sun.faces.renderkit.html_basic.TableRenderer.encodeBegin(TableRenderer.java:77)
        
javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:813)
        javax.faces.component.UIData.encodeBegin(UIData.java:983)
        javax.faces.component.UIComponent.encodeAll(UIComponent.java:928)
        javax.faces.render.Renderer.encodeChildren(Renderer.java:148)
        
javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:837)
        javax.faces.component.UIComponent.encodeAll(UIComponent.java:930)
        javax.faces.component.UIComponent.encodeAll(UIComponent.java:933)
        
com.sun.faces.application.ViewHandlerImpl.doRenderView(ViewHandlerImpl.java:266)
        
com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:197)
        
com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:110)
        com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
        com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
        javax.faces.webapp.FacesServlet.service(FacesServlet.java:266)

note The full stack trace of the root cause is available in the Apache 
Tomcat/6.0.26 logs.

Reply via email to