Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
2.0
-
None
Description
Occasionally on htttp://rollerweblogger.org/planet.do the page fails to render completely and a exception appears in the logs, like the one below. The PlanetManager does some caching of PlanetEntryData objects, which are actually wrapped by CGLIB proxy. Apparently, since the Hibernate session that created the object is closed, the lazy init function fails. Interestingly, it fails for a simple property siteUrl. I'm not sure why this happens intermittently, but it does. Pretty troubling.
I'm thinking that the PlanetManager should not do any caching and instead rely on the page cache, like the rest of Roller. That would solve this problem, but it sure would be nice to know what is actually going on.
According to the Hibernate docs, it is possible to turn off proxies on a per object basis, but it is not clear it this turns off lasy-loading completely or not. It would probably be a bad thing to turn off lazy loading. Plus, the version of XDoclet that we are using doesn't allow is to turn off proxies.
ERROR 2005-10-14 21:30:30,018 InsertTag$InsertHandler:doEndTag - ServletException in '/planet/planet.jsp': could not initialize proxy - the owning Session was closed
javax.servlet.ServletException: javax.servlet.jsp.JspException: An error occurred while evaluating custom action attribute "value" with value "${post.subscription.siteUrl}": An error occurred while getting property "siteUrl" from an instance of class org.roller.pojos.PlanetSubscriptionData$$EnhancerByCGLIB$$17f599cd (org.hibernate.LazyInitializationException: could not initialize proxy - the owning Session was closed)
at org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:821)
at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:758)
at org.apache.jsp.planet.planet_jsp._jspService(planet_jsp.java:206)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:298)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:703)
at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:589)
at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:499)
at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:966)
at org.apache.jasper.runtime.PageContextImpl.include(PageContextImpl.java:581)
at org.apache.struts.tiles.TilesUtilImpl.doInclude(TilesUtilImpl.java:101)
at org.apache.struts.tiles.TilesUtil.doInclude(TilesUtil.java:137)
at org.apache.struts.taglib.tiles.InsertTag.doInclude(InsertTag.java:758)
at org.apache.struts.taglib.tiles.InsertTag$InsertHandler.doEndTag(InsertTag.java:890)
at org.apache.struts.taglib.tiles.InsertTag.doEndTag(InsertTag.java:460)
at org.apache.jsp.theme.tiles_002dfrontpage_jsp._jspx_meth_tiles_insert_5(tiles_002dfrontpage_jsp.java:466)
at org.apache.jsp.theme.tiles_002dfrontpage_jsp._jspService(tiles_002dfrontpage_jsp.java:197)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:298)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)