Ken, what is your understanding of what beans [u]should[/u] be invoked on a restore view? Ryan seemed to indicate ones would be if they're referenced in rendered conditions.
When debugging an example, I get 2 types of stack traces for unexpected @PostConstruct invocations:
1) <t:aliasBean> reference in RESTORE_VIEW phase
2) <h:component renrered> reference in APPLY_REQUEST_VALUES phase
(see stack traces below)
What I'd really like to get clarity on is why those references are evaluated on postback of [u]my[/u] use case and whether this is an architectural requirement or something that could be optimized (or worked around).
Stack #1:
[#|2009-04-16T10:42:29.508-0700|SEVERE|sun-appserver9.1|calliope.web.destination|_ThreadID=17;_ThreadName=httpSSLWorkerThread-8080-1;_RequestID=6dc63b7f-34d7-4ff4-a582-e46bf88df0c6;|DestHotelSearchFacesBean.initialize: calliope.web.destination.DestHotelSearchFacesBean initialize being called
java.lang.RuntimeException
at calliope.web.destination.DestHotelSearchFacesBean.initialize(DestHotelSearchFacesBean.java:75)
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:597)
at com.sun.faces.vendor.GlassFishInjectionProvider$1.run(GlassFishInjectionProvider.java:277)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.faces.vendor.GlassFishInjectionProvider.invokeLifecycleMethod(GlassFishInjectionProvider.java:271)
at com.sun.faces.vendor.GlassFishInjectionProvider.invokePostConstruct(GlassFishInjectionProvider.java:201)
at com.sun.faces.vendor.GlassFishInjectionProvider.invokePostConstruct(GlassFishInjectionProvider.java:122)
at com.sun.faces.config.ManagedBeanFactoryImpl.newInstance(ManagedBeanFactoryImpl.java:327)
at com.sun.faces.application.ApplicationAssociate.createAndMaybeStoreManagedBeans(ApplicationAssociate.java:546)
at com.sun.faces.el.ManagedBeanELResolver.getValue(ManagedBeanELResolver.java:82)
at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:143)
at com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:64)
at com.sun.faces.el.ChainAwareVariableResolver.resolveVariable(ChainAwareVariableResolver.java:96)
at org.apache.shale.faces.ShaleVariableResolver.resolveVariable(ShaleVariableResolver.java:157)
at com.sun.faces.el.VariableResolverChainWrapper.getValue(VariableResolverChainWrapper.java:100)
at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:143)
at com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:64)
at com.sun.el.parser.AstIdentifier.getValue(AstIdentifier.java:86)
at com.sun.el.parser.AstValue.getValue(AstValue.java:127)
at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:206)
at org.apache.myfaces.custom.aliasbean.Alias.computeEvaluatedExpression(Alias.java:108)
at org.apache.myfaces.custom.aliasbean.Alias.make(Alias.java:137)
at org.apache.myfaces.custom.aliasbean.AliasBean.makeAlias(AliasBean.java:357)
at org.apache.myfaces.custom.aliasbean.AliasBean.makeAlias(AliasBean.java:342)
at org.apache.myfaces.custom.aliasbean.AliasBean.processRestoreState(AliasBean.java:230)
at org.apache.myfaces.custom.aliasbean.AliasBeansScope.processRestoreState(AliasBeansScope.java:190)
at javax.faces.component.UIComponentBase.processRestoreState(UIComponentBase.java:1157)
at com.sun.faces.application.StateManagerImpl.restoreView(StateManagerImpl.java:171)
at com.sun.faces.application.ViewHandlerImpl.restoreView(ViewHandlerImpl.java:290)
at org.apache.shale.view.faces.ViewViewHandler.restoreView(ViewViewHandler.java:160)
at javax.faces.application.ViewHandlerWrapper.restoreView(ViewHandlerWrapper.java:193)
at com.sun.faces.lifecycle.RestoreViewPhase.execute(RestoreViewPhase.java:141)
at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)
at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:411)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:317)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)
at calliope.web.servlet.ClpServletFilter.doFilter(ClpServletFilter.java:201)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)
at org.apache.shale.application.faces.ShaleApplicationFilter.doFilter(ShaleApplicationFilter.java:267)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:297)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:271)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:202)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:206)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:150)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:272)
at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:637)
at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:568)
at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:813)
at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341)
at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263)
at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214)
at com.sun.enterprise.web.portunif.PortUnificationPipeline$PUTask.doTask(PortUnificationPipeline.java:380)
at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265)
at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106)
|#]
Stack #2:
[#|2009-04-16T10:37:04.700-0700|SEVERE|sun-appserver9.1|calliope.web.destination|_ThreadID=17;_ThreadName=httpSSLWorkerThread-8080-1;_RequestID=6dc63b7f-34d7-4ff4-a582-e46bf88df0c6;|DestHotelSearchFacesBean.initialize: calliope.web.destination.DestHotelSearchFacesBean initialize being called
java.lang.RuntimeException
at calliope.web.destination.DestHotelSearchFacesBean.initialize(DestHotelSearchFacesBean.java:75)
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:597)
at com.sun.faces.vendor.GlassFishInjectionProvider$1.run(GlassFishInjectionProvider.java:277)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.faces.vendor.GlassFishInjectionProvider.invokeLifecycleMethod(GlassFishInjectionProvider.java:271)
at com.sun.faces.vendor.GlassFishInjectionProvider.invokePostConstruct(GlassFishInjectionProvider.java:201)
at com.sun.faces.vendor.GlassFishInjectionProvider.invokePostConstruct(GlassFishInjectionProvider.java:122)
at com.sun.faces.config.ManagedBeanFactoryImpl.newInstance(ManagedBeanFactoryImpl.java:327)
at com.sun.faces.application.ApplicationAssociate.createAndMaybeStoreManagedBeans(ApplicationAssociate.java:546)
at com.sun.faces.el.ManagedBeanELResolver.getValue(ManagedBeanELResolver.java:82)
at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:143)
at com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:64)
at com.sun.faces.el.ChainAwareVariableResolver.resolveVariable(ChainAwareVariableResolver.java:96)
at org.apache.shale.faces.ShaleVariableResolver.resolveVariable(ShaleVariableResolver.java:157)
at com.sun.faces.el.VariableResolverChainWrapper.getValue(VariableResolverChainWrapper.java:100)
at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:143)
at com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:64)
at com.sun.el.parser.AstIdentifier.getValue(AstIdentifier.java:86)
at com.sun.el.parser.AstValue.getValue(AstValue.java:127)
at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:206)
at javax.faces.component.UIComponentBase.isRendered(UIComponentBase.java:370)
at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:993)
at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1001)
at org.apache.myfaces.custom.aliasbean.AliasBeansScope.processDecodes(AliasBeansScope.java:214)
at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1001)
at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:493)
at org.apache.shale.view.faces.ShaleViewRoot.processDecodes(ShaleViewRoot.java:55)
at com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)
at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:411)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:317)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)
at calliope.web.servlet.ClpServletFilter.doFilter(ClpServletFilter.java:201)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)
at org.apache.shale.application.faces.ShaleApplicationFilter.doFilter(ShaleApplicationFilter.java:267)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:297)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:271)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:202)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:206)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:150)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:272)
at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:637)
at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:568)
at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:813)
at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341)
at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263)
at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214)
at com.sun.enterprise.web.portunif.PortUnificationPipeline$PUTask.doTask(PortUnificationPipeline.java:380)
at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265)
at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106)
|#]
[Message sent by forum member 'bouteill' (bouteill)]
http://forums.java.net/jive/thread.jspa?messageID=342471