myfaces-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Leonardo Uribe <lu4...@gmail.com>
Subject Re: TomEE/MyFaces: EL exception NulPointerException for h:selectOneMenu
Date Mon, 17 Dec 2012 20:38:05 GMT
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. <smithh032772@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

Mime
View raw message