Hi,
Sometimes I'm getting this exception:
2009-02-08 12:03:14,658 ERROR [[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'] MessagesTag.logException(355) | org.springframework.orm.hibernate3.HibernateObjectRetrievalFailureException: Object with id: 449 was not of the specified subclass: com.blandware.atleap.model.core.Layout (loaded object was of wrong class); nested exception is org.hibernate.WrongClassException: Object with id: 449 was not of the specified subclass: com.blandware.atleap.model.core.Layout (loaded object was of wrong class)
org.hibernate.WrongClassException: Object with id: 449 was not of the specified subclass: com.blandware.atleap.model.core.Layout (loaded object was of wrong class)
Which later caused these messages:
2009-02-08 20:07:19,701 ERROR [[ACTIVE] ExecuteThread: '2' for queue: 'weblogic.kernel.Default (self-tuning)'] ContentTilesRequestProcessor.processContentPage(344) | Cannot perfom function because layout could not be found. Cause: exception setting property value with CGLIB (set hibernate.cglib.use_reflection_optimizer=false for more info) setter of com.blandware.atleap.model.core.ContentPage.setLayout; nested exception is org.hibernate.PropertyAccessException: exception setting property value with CGLIB (set hibernate.cglib.use_reflection_optimizer=false for more info) setter of com.blandware.atleap.model.core.ContentPage.setLayout
2009-02-08 20:07:19,701 WARN [[ACTIVE] ExecuteThread: '2' for queue: 'weblogic.kernel.Default (self-tuning)'] ContentTilesRequestProcessor.processMapping(607) | Invalid path /pages/T4T/teachers/index was requested
(this I suppose is due to the fact that because layout cannot be retrieved, then hibernate is setting contentPage.setLayout(null), and since layout is mapped in contentPage with not-null="true", hence the error)
As a result, users are not able to see the site pages.
I'm not able to reproduced it, only happens sometimes in production. I just know that restarting the server (deployed in weblogic), the issue disapears (until next time).
Layout is mapped as subclass of Localizable (and it extends it, as well as many other classes)...could it be that for some reason hibernate is trying to get the layout from al_core_localizable instead of al_core_layout?
Or, from what I also found googling this issue, maybe is related with ehcache and hibernate cache, but was not able to see any solutions :(
Any ideias?
Thanks in advance and best regards,
Sara
PS: full stack trace of WrongClassException error:
2009-02-08 12:03:14,658 ERROR [[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'] MessagesTag.logException(355) | org.springframework.orm.hibernate3.HibernateObjectRetrievalFailureException: Object with id: 449 was not of the specified subclass: com.blandware.atleap.model.core.Layout (loaded object was of wrong class); nested exception is org.hibernate.WrongClassException: Object with id: 449 was not of the specified subclass: com.blandware.atleap.model.core.Layout (loaded object was of wrong class)
org.hibernate.WrongClassException: Object with id: 449 was not of the specified subclass: com.blandware.atleap.model.core.Layout (loaded object was of wrong class)
at org.hibernate.loader.Loader.instanceAlreadyLoaded(Loader.java:1235)
at org.hibernate.loader.Loader.getRow(Loader.java:1186)
at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:569)
at org.hibernate.loader.Loader.doQuery(Loader.java:689)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224)
at org.hibernate.loader.Loader.doList(Loader.java:2145)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2029)
at org.hibernate.loader.Loader.list(Loader.java:2024)
at org.hibernate.hql.classic.QueryTranslatorImpl.list(QueryTranslatorImpl.java:887)
at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:153)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1106)
at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
at org.hibernate.impl.AbstractQueryImpl.uniqueResult(AbstractQueryImpl.java:749)
at com.blandware.atleap.persistence.hibernate.core.BaseDAOHibernate$2.doInHibernate(BaseDAOHibernate.java:385)
at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:366)
at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:334)
at com.blandware.atleap.persistence.hibernate.core.BaseDAOHibernate.findUniqueResult(BaseDAOHibernate.java:364)
at com.blandware.atleap.persistence.hibernate.core.BaseDAOHibernate.findUniqueResult(BaseDAOHibernate.java:318)
at com.blandware.atleap.persistence.hibernate.core.LayoutDAOHibernate.findLayoutByDefinition(LayoutDAOHibernate.java:174)
at com.blandware.atleap.service.core.impl.LayoutManagerImpl.findLayoutByDefinition(LayoutManagerImpl.java:168)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:287)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:181)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:148)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:170)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:176)
at $Proxy46.findLayoutByDefinition(Unknown Source)
at com.blandware.atleap.webapp.taglib.core.content.ContentIteratorTag.doTag(ContentIteratorTag.java:479)
at jsp_servlet._web_45_inf._pages._t4t.__whatsonlist._jspService(__whatsonlist.java:201)
at weblogic.servlet.jsp.JspBase.service(JspBase.java:34)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:175)
at weblogic.servlet.internal.RequestDispatcherImpl.invokeServlet(RequestDispatcherImpl.java:530)
at weblogic.servlet.internal.RequestDispatcherImpl.include(RequestDispatcherImpl.java:459)
at weblogic.servlet.jsp.PageContextImpl.include(PageContextImpl.java:159)
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 jsp_servlet._web_45_inf._pages._layouts._t4t.__frontendlayout._jsp__tag57(__frontendlayout.java:1707)
at jsp_servlet._web_45_inf._pages._layouts._t4t.__frontendlayout.access$15(__frontendlayout.java)
at jsp_servlet._web_45_inf._pages._layouts._t4t.__frontendlayout$JspFragmentHelper.invoke4(__frontendlayout.java:1647)
at jsp_servlet._web_45_inf._pages._layouts._t4t.__frontendlayout$JspFragmentHelper.invoke(__frontendlayout.java:1672)
at com.blandware.atleap.webapp.taglib.core.logic.IteratorTag.doTag(IteratorTag.java:426)
at jsp_servlet._web_45_inf._pages._layouts._t4t.__frontendlayout._jspService(__frontendlayout.java:810)
at weblogic.servlet.jsp.JspBase.service(JspBase.java:34)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:175)
at weblogic.servlet.internal.RequestDispatcherImpl.invokeServlet(RequestDispatcherImpl.java:530)
at weblogic.servlet.internal.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:266)
at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1056)
at org.apache.struts.tiles.TilesRequestProcessor.doForward(TilesRequestProcessor.java:261)
at org.apache.struts.tiles.TilesRequestProcessor.processTilesDefinition(TilesRequestProcessor.java:237)
at com.blandware.atleap.webapp.struts.ContentTilesRequestProcessor.processTilesDefinition(ContentTilesRequestProcessor.java:650)
at com.blandware.atleap.webapp.struts.ContentTilesRequestProcessor.processContentPage(ContentTilesRequestProcessor.java:496)
at com.blandware.atleap.webapp.struts.ContentTilesRequestProcessor.processMapping(ContentTilesRequestProcessor.java:585)
at com.blandware.atleap.webapp.struts.ContentTilesRequestProcessor.process(ContentTilesRequestProcessor.java:177)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:397)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:175)
at weblogic.servlet.internal.RequestDispatcherImpl.invokeServlet(RequestDispatcherImpl.java:530)
at weblogic.servlet.internal.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:266)
at org.tuckey.web.filters.urlrewrite.RewrittenUrl.doRewrite(RewrittenUrl.java:188)
at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:340)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
at com.blandware.atleap.webapp.filter.StatisticsCollectionFilter.doFilter(StatisticsCollectionFilter.java:75)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
at com.blandware.atleap.webapp.filter.ActionFilter.doFilter(ActionFilter.java:147)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
at com.blandware.atleap.webapp.filter.GZIPFilter.doFilter(GZIPFilter.java:52)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:292)
at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:106)
at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:79)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:303)
at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:143)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:303)
at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:138)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:303)
at com.blandware.atleap.webapp.acegi.CustomContextHolderAwareRequestFilter.doFilter(CustomContextHolderAwareRequestFilter.java:60)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:303)
at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:156)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:303)
at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:173)
at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:120)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:292)
at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:116)
at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:79)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:303)
at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:143)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:303)
at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:138)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:303)
at com.blandware.atleap.webapp.acegi.CustomContextHolderAwareRequestFilter.doFilter(CustomContextHolderAwareRequestFilter.java:60)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:303)
at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:220)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:303)
at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:173)
at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:120)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:71)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:174)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:75)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3242)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2010)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:1916)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1366)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)