Changing the rendered "state" of inputDate causes a NullPointerException
------------------------------------------------------------------------

                 Key: TOMAHAWK-903
                 URL: https://issues.apache.org/jira/browse/TOMAHAWK-903
             Project: MyFaces Tomahawk
          Issue Type: Bug
          Components: Date
    Affects Versions: 1.1.5-SNAPSHOT
         Environment: Tomahawk 1.1.5 SNAPSHOT of February 19th 2007, JSF 1.2_2 
RI, J2EE 1.5
            Reporter: Bjørn Stenfeldt


I have a boolean checkbox, which toggles the rendered attribute on 2 inputDate 
tags. When I check the "continuous" checkbox, the page refreshes and the 
"begins" and "ends" inputDate tags are not rendered. But when I uncheck the 
checkbox, I get an exception. I have tried to replace the inputDate tags with 
inputText tags and that works just fine. Everything seems to indicate a problem 
with inputDate.

Here's the code I'm using, along with the exception thrown.



My JSF:
<html:form id="myForm">
<tomahawk:selectBooleanCheckbox id="continuous"
                                value="#{ManagedBean.continuous}"
                                onclick="document.forms['myForm'].submit();"
                                immediate="true"/>
<html:outputText rendered="#{!ManagedBean.continuous}">
    <tomahawk:inputDate id="begins" value="#{ManagedBean.begins}" 
required="true"/>
    <tomahawk:inputDate id="ends" value="#{ManagedBean.ends}" required="true"/>
</html:outputText>
</html:form>



My ManagedBean:
public class ManagedBean extends AbstractRequestBean {
    private boolean continuous;
    private Date begins;
    private Date ends;
    
    public ManagedBean() {
        String value = null;
        if ((value = getRequestParameter("myForm:continuous")) != null) {
            continuous = value.equalsIgnoreCase("true");
        }
        else {
            continuous = false;
        }
    }
    
    public boolean getContinuous() {
        return continuous;
    }

    public void setContinuous(boolean continuous) {
        this.continuous = continuous;
    }

    public Date getBegins() {
        return begins;
    }

    public void setBegins(Date begins) {
        this.begins = begins;
    }

    public Date getEnds() {
        return ends;
    }

    public void setEnds(Date ends) {
        this.ends = ends;
    }
}



Exception thrown:
java.lang.NullPointerException
        at 
org.apache.myfaces.custom.date.HtmlInputDate$UserData.isDateSubmitted(HtmlInputDate.java:329)
        at 
org.apache.myfaces.custom.date.HtmlInputDate$UserData.isSubmitValid(HtmlInputDate.java:346)
        at 
org.apache.myfaces.custom.date.HtmlInputDate$UserData.parse(HtmlInputDate.java:274)
        at 
org.apache.myfaces.custom.date.HtmlDateRenderer.getConvertedValue(HtmlDateRenderer.java:359)
        at javax.faces.component.UIInput.getConvertedValue(UIInput.java:936)
        at javax.faces.component.UIInput.validate(UIInput.java:861)
        at javax.faces.component.UIInput.executeValidate(UIInput.java:1071)
        at javax.faces.component.UIInput.processValidators(UIInput.java:663)
        at 
javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1040)
        at javax.faces.component.UIForm.processValidators(UIForm.java:229)
        at 
javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1040)
        at 
javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:667)
        at 
com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:100)
        at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:244)
        at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:113)
        at javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)
        at 
org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:397)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:184)
        at 
org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:147)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:216)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:184)
        at 
portal.b2b.filters.StatisticsFilter.doFilter(StatisticsFilter.java:103)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:216)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:184)
        at portal.b2b.filters.UserFilter.doFilter(UserFilter.java:75)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:216)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:184)
        at portal.b2b.filters.HostFilter.doFilter(HostFilter.java:97)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:216)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:184)
        at 
portal.b2b.filters.InitializeFilter.doFilter(InitializeFilter.java:36)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:216)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:184)
        at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:276)
        at 
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566)
        at 
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:536)
        at 
org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:240)
        at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:179)
        at 
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566)
        at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:73)
        at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:182)
        at 
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566)
        at 
com.sun.enterprise.web.VirtualServerPipeline.invoke(VirtualServerPipeline.java:120)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:939)
        at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:137)
        at 
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566)
        at 
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:536)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:939)
        at 
org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:239)
        at 
com.sun.enterprise.web.connector.grizzly.ProcessorTask.invokeAdapter(ProcessorTask.java:667)
        at 
com.sun.enterprise.web.connector.grizzly.ProcessorTask.processNonBlocked(ProcessorTask.java:574)
        at 
com.sun.enterprise.web.connector.grizzly.ProcessorTask.process(ProcessorTask.java:844)
        at 
com.sun.enterprise.web.connector.grizzly.ReadTask.executeProcessorTask(ReadTask.java:287)
        at 
com.sun.enterprise.web.connector.grizzly.ReadTask.doTask(ReadTask.java:212)
        at 
com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:252)
        at 
com.sun.enterprise.web.connector.grizzly.WorkerThread.run(WorkerThread.java:75)
|#]


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to