Second request. Stopping me from implementing a new feature in production.
I basically have a list of checkboxes on a form that throws an error
if none of them are selected. I need to be able to not have to select
any checkboxes. Any ideas?
-Steve
On 8/14/05, steve rock <[EMAIL PROTECTED]> wrote:
> Here's my component.
>
> <h:selectManyCheckbox id="stationFeatures" layout="pageDirection"
> value="#{userTool.newUserFeatures}" >
> <f:selectItems value="#{userTool.featureSelectItems}"/>
> </h:selectManyCheckbox>
>
> It presents a list of radio stations a user can select. However as
> part of the business requirements they can have none selected. When I
> select none and submit the form, I get a NullPointerException. How
> come?
>
>
> Here is the stack trace:
>
> java.lang.NullPointerException
> at
> org.apache.myfaces.renderkit._SharedRendererUtils.getConvertedUISelectManyValue(_SharedRendererUtils.java:118)
> at
> org.apache.myfaces.renderkit.RendererUtils.getConvertedUISelectManyValue(RendererUtils.java:792)
> at
> org.apache.myfaces.renderkit.html.HtmlCheckboxRendererBase.getConvertedValue(HtmlCheckboxRendererBase.java:260)
> at
> javax.faces.component.UISelectMany.getConvertedValue(UISelectMany.java:295)
> at javax.faces.component.UIInput.validate(UIInput.java:291)
> at javax.faces.component.UISelectMany.validate(UISelectMany.java:284)
> at javax.faces.component.UIInput.processValidators(UIInput.java:166)
> at
> javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:427)
> at
> javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:427)
> at
> javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:427)
> at javax.faces.component.UIForm.processValidators(UIForm.java:66)
> at
> javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:427)
> at
> javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:162)
> at
> org.apache.myfaces.lifecycle.LifecycleImpl.processValidations(LifecycleImpl.java:208)
> at
> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:92)
> at javax.faces.webapp.FacesServlet.service(FacesServlet.java:109)
> at
> org.apache.myfaces.webapp.MyFacesServlet.service(MyFacesServlet.java:70)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
> at
> com.m2g.stationtools.web.filters.StationToolsRequestContextFilter.doFilter(StationToolsRequestContextFilter.java:49)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
> at
> org.apache.myfaces.component.html.util.ExtensionsFilter.doFilter(ExtensionsFilter.java:112)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
> at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
> at
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
> at
> org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
> at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
> at
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
> at
> org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:72)
> at
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
> at
> org.jboss.web.tomcat.security.JBossSecurityMgrRealm.invoke(JBossSecurityMgrRealm.java:275)
> at
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
> at
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:540)
> at
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
> at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
> at
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
> at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
> at
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
> at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
> at
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
> at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
> at
> org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
> at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
> at
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
> at
> org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
> at
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
> at java.lang.Thread.run(Thread.java:534)
>