On 12/7/2011 9:50 AM, Matt Benson wrote:
If you can possibly boil this down to a standalone example it would be much more likely that someone could determine what the problem is.
Sure, but the process of converting from 1.1/JSP to 2.1/Facelets is large but fairly mundane: Value/MethodBinding -> Value/MethodException plus lots of syntactic changes on the UI and some config changes; it is necessarily a 'shotgun refactoring'.
The pages in question currently work with partial state saving, so I'm having a hard time imagining how full state saving could be worse. I was just hoping someone else had done the same. The fact that this works for partial and fails for full suggests a config problem, because everything used to be full state saving.
StateManagerImpl does not set the viewRoot on the FacesContext before calling #restoreState() on the viewRoot.
The ViewRoot is set, the NPE comes from an instance of org.apache.myfaces.trinidadinternal.context.FacesContextFactoryImpl$CacheRenderKit#getRenderKit() returning null. This means that FacesContextImpl has a null renderkit at this moment too (CacheRenderKit sets: _kit = _base.getRenderKit() just before the NPE)
Shane On Wed, Dec 7, 2011 at 12:30 AM, Shane Petroff <sh...@mayet.ca> wrote:
So, I bit the bullet and converted my app over to facelets. Now I'm having problems with binding on a particular page, so I decided to try turning partial state saving off with: <context-param> <param-name>javax.faces.PARTIAL_STATE_SAVING</param-name> <param-value>false</param-value> </context-param> I can work with the login and start page, but anything after throws the NPE pasted below. What could I have messed up which causes full state saving to bomb? (myfaces-core-2.1.4, tomahawk20-1.1.11, trinidad-2.0.0 under JDK 1.6.0_29) Thx. Shane java.lang.NullPointerException at javax.faces.component.UIComponentBase.getRenderer(UIComponentBase.java:1201) at javax.faces.component.UIComponent$EventListenerWrapper.restoreState(UIComponent.java:1591) at javax.faces.component.UIComponentBase.restoreAttachedState(UIComponentBase.java:1776) at javax.faces.component._DeltaList.restoreState(_DeltaList.java:253) at javax.faces.component.UIComponentBase.restoreAttachedState(UIComponentBase.java:1776) at javax.faces.component.UIComponentBase.restoreFullSystemEventListenerClassMap(UIComponentBase.java:2058) at javax.faces.component.UIComponentBase.restoreState(UIComponentBase.java:1906) at javax.faces.component.UIComponentBase.processRestoreState(UIComponentBase.java:1496) at javax.faces.component.UIComponentBase.processRestoreState(UIComponentBase.java:1540) at javax.faces.component.UIComponentBase.processRestoreState(UIComponentBase.java:1540) at javax.faces.component.UIComponentBase.processRestoreState(UIComponentBase.java:1540) at javax.faces.component.UIComponentBase.processRestoreState(UIComponentBase.java:1540) at javax.faces.component.UIViewRoot.processRestoreState(UIViewRoot.java:765) at org.apache.myfaces.trinidadinternal.application.StateManagerImpl.restoreView(StateManagerImpl.java:701) at org.apache.myfaces.shared.view.ViewDeclarationLanguageBase.restoreView(ViewDeclarationLanguageBase.java:106) at org.apache.myfaces.view.facelets.FaceletViewDeclarationLanguage.restoreView(FaceletViewDeclarationLanguage.java:2037) at org.apache.myfaces.application.ViewHandlerImpl.restoreView(ViewHandlerImpl.java:300) at javax.faces.application.ViewHandlerWrapper.restoreView(ViewHandlerWrapper.java:83) at javax.faces.application.ViewHandlerWrapper.restoreView(ViewHandlerWrapper.java:83) at org.apache.myfaces.trinidadinternal.application.ViewHandlerImpl.restoreView(ViewHandlerImpl.java:242) at org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:127) at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:170) at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:197) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:357) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:293) at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:199) at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:964) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:304) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662) -- Shane
-- Shane