Hi In my opinion, the stack traces shows that @PostConstruct is not called or filterYear is set to null in some other place.
If the container is not calling @PostConstruct, TomEE is the one to blame, but first I would check that assumption, using a debugger or with a System.out.println(). regards, Leonardo Uribe 2012/12/17 Howard W. Smith, Jr. <smithh032...@gmail.com>: > Leonardo, > > Thanks for your response to my previous email where you proposed a fix > using MyFaces Commons (mcc taghandler). > > Now, I'm wondering if this is TomEE or MyFaces. For some reason, filterYear > (Integer) seems to be NULL when enduser/myself click the following > commandButton. > > <p:commandButton value="Browse" icon="ui-icon-search" immediate="true" > actionListener="#{pf_rollingStockController.prepareList()}" > ajax="false"/> > > > Please note the following: > > 1. web app is composed of CDI-managed-beans, running via TomEE 1.5.1 and > MyFaces 2.1.10, and JUEL 2.2.5 > 2. the xhtml and bean did not result in exception when I was running > Glassfish and JSF-managed-beans (at this time, last year, when this xhtml > and bean was in demand) > 3. I had to check for NULL in 'getSelectOneFilterYear()' to fix this issue. > > xhtml > > <h:selectOneMenu value="#{pf_rollingStockController.filterYear}"> > <f:selectItem itemValue="0" > > itemLabel="#{pf_rollingStockController.selectOneFilterYear}" /> > <f:selectItems value="#{pf_rollingStockController.allYears}"/> > <p:ajax partialSubmit="true" > listener="#{pf_rollingStockController.prepareList()}" > update=":pageContentPanel"/> > </h:selectOneMenu> > > > bean > > > import javax.inject.Named; > import javax.enterprise.context.SessionScoped; > > @Named("pf_rollingStockController") > @SessionScoped > public class pf_RollingStockController implements Serializable { > > private Integer filterYear; > > @PostConstruct > protected void init() { > > filterYear = 0; > > } > > public String getSelectOneFilterYear() { > /*** HAD TO ADD THIS TO FIX THE EXCEPTION BELOW ***/ > if (filterYear == null) { > filterYear = 0; > } > /*** HAD TO ADD THIS TO FIX THE EXCEPTION BELOW ***/ > if (filterYear == 0) > return "Select One"; > else > return "Show All"; > } > > > > stacktrace in TomEE's log > > > javax.servlet.ServletException: javax.el.ELException: > java.lang.NullPointerException > at javax.faces.webapp.FacesServlet.service(FacesServlet.java:229) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) > at > org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:79) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) > at > org.omnifaces.filter.GzipResponseFilter.doFilter(GzipResponseFilter.java:148) > at org.omnifaces.filter.HttpFilter.doFilter(HttpFilter.java:75) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) > at pf.LoginFilter.doFilter(LoginFilter.java:204) > 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:222) > at > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) > at org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:45) > at > org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) > at > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) > at > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) > at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936) > at > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) > at > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) > at > org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004) > at > org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589) > at > org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) > at java.lang.Thread.run(Thread.java:722) > Caused by: org.apache.myfaces.view.facelets.el.ContextAwareELException: > javax.el.ELException: java.lang.NullPointerException > at > org.apache.myfaces.view.facelets.el.ContextAwareTagValueExpression.getValue(ContextAwareTagValueExpression.java:104) > at javax.faces.component._DeltaStateHelper.eval(_DeltaStateHelper.java:249) > at javax.faces.component.UISelectItem.getItemLabel(UISelectItem.java:129) > at > org.apache.myfaces.shared.util.SelectItemsIterator.hasNext(SelectItemsIterator.java:124) > at > org.apache.myfaces.shared.renderkit.RendererUtils.internalGetSelectItemList(RendererUtils.java:798) > at > org.apache.myfaces.shared.renderkit.RendererUtils.getSelectItemList(RendererUtils.java:764) > at > org.apache.myfaces.shared.renderkit.html.HtmlSelectableRendererBase.internalRenderSelect(HtmlSelectableRendererBase.java:74) > at > org.apache.myfaces.shared.renderkit.html.HtmlMenuRendererBase.renderMenu(HtmlMenuRendererBase.java:91) > at > org.apache.myfaces.shared.renderkit.html.HtmlMenuRendererBase.encodeEnd(HtmlMenuRendererBase.java:76) > at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:665) > at javax.faces.component.UIComponentBase.encodeAll(UIComponentBase.java:545) > at > org.apache.myfaces.shared.renderkit.html.HtmlGridRendererBase.renderChildren(HtmlGridRendererBase.java:370) > at > org.apache.myfaces.shared.renderkit.html.HtmlGridRendererBase.encodeEnd(HtmlGridRendererBase.java:194) > at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:665) > at javax.faces.component.UIComponentBase.encodeAll(UIComponentBase.java:545) > at > org.primefaces.component.datatable.DataTableRenderer.encodeColumnHeaderContent(DataTableRenderer.java:409) > at > org.primefaces.component.datatable.DataTableRenderer.encodeColumnHeader(DataTableRenderer.java:373) > at > org.primefaces.component.datatable.DataTableRenderer.encodeThead(DataTableRenderer.java:584) > at > org.primefaces.component.datatable.DataTableRenderer.encodeRegularTable(DataTableRenderer.java:213) > at > org.primefaces.component.datatable.DataTableRenderer.encodeMarkup(DataTableRenderer.java:186) > at > org.primefaces.component.datatable.DataTableRenderer.encodeEnd(DataTableRenderer.java:79) > at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:665) > at javax.faces.component.UIData.encodeEnd(UIData.java:1699) > at org.primefaces.renderkit.CoreRenderer.renderChild(CoreRenderer.java:62) > at > org.primefaces.renderkit.CoreRenderer.renderChildren(CoreRenderer.java:46) > at > org.primefaces.component.panel.PanelRenderer.encodeContent(PanelRenderer.java:202) > at > org.primefaces.component.panel.PanelRenderer.encodeMarkup(PanelRenderer.java:119) > at > org.primefaces.component.panel.PanelRenderer.encodeEnd(PanelRenderer.java:56) > at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:665) > at org.primefaces.renderkit.CoreRenderer.renderChild(CoreRenderer.java:62) > at > org.primefaces.renderkit.CoreRenderer.renderChildren(CoreRenderer.java:46) > at org.primefaces.renderkit.CoreRenderer.renderChild(CoreRenderer.java:60) > at > org.primefaces.renderkit.CoreRenderer.renderChildren(CoreRenderer.java:46) > at > org.primefaces.component.outputpanel.OutputPanelRenderer.encodeEnd(OutputPanelRenderer.java:46) > at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:665) > at org.primefaces.renderkit.CoreRenderer.renderChild(CoreRenderer.java:62) > at > org.primefaces.renderkit.CoreRenderer.renderChildren(CoreRenderer.java:46) > at > org.primefaces.extensions.component.layout.LayoutPaneRenderer.encodeBegin(LayoutPaneRenderer.java:141) > at > javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:587) > at javax.faces.component.UIComponentBase.encodeAll(UIComponentBase.java:517) > at javax.faces.component.UIComponentBase.encodeAll(UIComponentBase.java:541) > at javax.faces.component.UIComponentBase.encodeAll(UIComponentBase.java:541) > at javax.faces.component.UIComponentBase.encodeAll(UIComponentBase.java:541) > at > org.apache.myfaces.view.facelets.FaceletViewDeclarationLanguage.renderView(FaceletViewDeclarationLanguage.java:1981) > at > org.apache.myfaces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:285) > at > javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:59) > at > javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:59) > at > org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:116) > at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:241) > at javax.faces.webapp.FacesServlet.service(FacesServlet.java:199) > ... 27 more > Caused by: javax.el.ELException: java.lang.NullPointerException > at javax.el.BeanELResolver.getValue(BeanELResolver.java:307) > at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:175) > at de.odysseus.el.tree.impl.ast.AstProperty.eval(AstProperty.java:77) > at de.odysseus.el.tree.impl.ast.AstEval.eval(AstEval.java:51) > at de.odysseus.el.tree.impl.ast.AstNode.getValue(AstNode.java:30) > at de.odysseus.el.TreeValueExpression.getValue(TreeValueExpression.java:122) > at > org.apache.webbeans.el.WrappedValueExpression.getValue(WrappedValueExpression.java:68) > at > org.apache.myfaces.view.facelets.el.ContextAwareTagValueExpression.getValue(ContextAwareTagValueExpression.java:96) > ... 76 more > Caused by: java.lang.NullPointerException > at > jsf.rollingStock.pf_RollingStockController.getSelectOneFilterYear(pf_RollingStockController.java:1407) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:601) > at > org.apache.webbeans.intercept.InterceptorHandler.invoke(InterceptorHandler.java:322) > at > org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.invoke(NormalScopedBeanInterceptorHandler.java:117) > at > org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.invoke(NormalScopedBeanInterceptorHandler.java:108) > at > jsf.rollingStock.pf_RollingStockController_$$_javassist_37.getSelectOneFilterYear(pf_RollingStockController_$$_javassist_37.java) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:601) > at javax.el.BeanELResolver.getValue(BeanELResolver.java:302) > ... 83 more > > > Please let me know your thoughts. > > Thanks, > Howard