webtier@glassfish.java.net

Re: How to avoid _at_PostConstruct on page Faces beans during postback?

From: <webtier_at_javadesktop.org>
Date: Thu, 16 Apr 2009 12:01:23 PDT

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