Sorry about that.  Thanks to both of you then.
:-)

On Apr 8, 2005 7:35 AM, David Heffelfinger <[EMAIL PROTECTED]> wrote:
> Sean,
>  
>       Thanks for applying the patch.  I have a small correction to report,
> in the comments, you credit me for reporting the bug, I would like to
> clarify that I didn't report the bug, Enrique Medina Montenegro did.
>  
>  David
> 
> 
> On Apr 7, 2005 4:44 PM, sean schofield (JIRA)
> <[email protected]> wrote:
> >      [
> http://issues.apache.org/jira/browse/MYFACES-167?page=comments#action_62403
> ]
> > 
> > sean schofield commented on MYFACES-167:
> > ----------------------------------------
> > 
> > I'm having trouble applying the patch.  Normally patch is preferred but in
> the interest of time, please send me the entire file directly.
> > 
> > > x:inputCalendar and conversion/validation errors
> > > ------------------------------------------------
> > >
> > >          Key: MYFACES-167
> > >          URL:
> http://issues.apache.org/jira/browse/MYFACES-167
> > >      Project: MyFaces
> > >         Type: Bug
> > >  Environment: Any
> > >     Reporter: Enrique Medina Montenegro
> > >     Assignee: sean schofield
> > 
> > >
> > > I'm using the MyFaces tag named x:inputCalendar in order to let the
> > > user select a date from a popup calendar or enter it directly. If the
> > > user enters a valid date, everything goes perfect.
> > > The problem comes when the user enters something wrong, for example
> > > letters. The component tries to convert this value to a valid date
> > > (following the pattern, if there is one), and then throws a
> > > ConvertException exception, so the Apply Request Values phase returns
> > > false, and LifeCycle jumps to the render phase.
> > > When rendering, the component is asked to encode itself, so the
> > > following code is executed:
> > > public void encodeEnd(FacesContext facesContext, UIComponent
> > > component) throws IOException
> > > {
> > > RendererUtils.checkParamValidity(facesContext,
> component,
> > > HtmlInputCalendar.class);
> > > HtmlInputCalendar inputCalendar = (HtmlInputCalendar) component;
> > > Locale currentLocale = facesContext.getViewRoot().getLocale();
> > > Date value = RendererUtils.getDateValue(inputCalendar);
> > > ....
> > > }
> > > As you can see, the last visible line of this code is:
> > > Date value = RendererUtils.getDateValue(inputCalendar);
> > > so it forces the actual value of the inputCalendar to be a date. And
> > > as obviously we come from a conversion error and that means the value
> > > is not a valid date, the RendererUtils.getDateValue(inputCalendar)
> > > throws:
> > >                    throw new IllegalArgumentException(
> > >                            "Expected submitted value of
> type Date for
> > > component : "+
> > >                           
> getPathToComponent(component));
> > > so this exception results in a ServletException that brings up the
> > > undesirable "full of Java trace annoying text" page to the user.
> > > I was wondering why the encondeEnd of this component forces the value
> > > to be obtained to be a date, when anything can be entered in a input
> > > text box.
> > > I've been looking at the common h:inputText tag and its component
> > > always uses the RenderUtils.getStringValue method from its encodeEnd
> > > method, so if a conversion/validation error has been detected, it is
> > > presented to the user using the friendly mechanism of a FacesMessage
> > > and the well-known messages tags.
> > > So I think this could be a bug as no validation can be done at all!
> > 
> > --
> > This message is automatically generated by JIRA.
> > -
> > If you think it was sent incorrectly contact one of the administrators:
> >   
> http://issues.apache.org/jira/secure/Administrators.jspa
> > -
> > If you want more information on JIRA, or have a bug to report see:
> >    http://www.atlassian.com/software/jira
> > 
> > 
> 
>

Reply via email to