You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@myfaces.apache.org by "Matthew Purland (JIRA)" <de...@myfaces.apache.org> on 2008/07/10 18:12:31 UTC
[jira] Created: (MYFACES-1893) DateTimeConverter date format for
converter exception args
DateTimeConverter date format for converter exception args
----------------------------------------------------------
Key: MYFACES-1893
URL: https://issues.apache.org/jira/browse/MYFACES-1893
Project: MyFaces Core
Issue Type: Bug
Components: General
Affects Versions: 1.2.3, 1.2.2, 1.2.4-SNAPSHOT
Environment: Windows XP, Pentium 4
Reporter: Matthew Purland
Fix For: 1.2.4-SNAPSHOT, 1.2.3
DateTimeConverter in getAsObject for
Object[] args = new Object[]{value,format.parse(new Date().toString()),_MessageUtils.getLabel(facesContext, uiComponent)};
throws ParseException Unparseable date: "Thu Jul 10 11:05:21 CDT 2008"
The
This is because format.parse(new Date().toString()) is an incorrect format for the DateFormat instance. This is because there is no default SimpleDateFormat instance to format the pattern "Thu Jul 10 11:05:21 CDT 2008"
This should be changed to use the format method for formatting Date objects as documented in both Date and DateFormat javadoc.
Please change to:
format.format(new Date())
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Updated: (MYFACES-1893) DateTimeConverter date format for
converter exception args
Posted by "Matthew Purland (JIRA)" <de...@myfaces.apache.org>.
[ https://issues.apache.org/jira/browse/MYFACES-1893?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Matthew Purland updated MYFACES-1893:
-------------------------------------
Status: Open (was: Patch Available)
> DateTimeConverter date format for converter exception args
> ----------------------------------------------------------
>
> Key: MYFACES-1893
> URL: https://issues.apache.org/jira/browse/MYFACES-1893
> Project: MyFaces Core
> Issue Type: Bug
> Components: General
> Affects Versions: 1.2.2, 1.2.3, 1.2.4-SNAPSHOT
> Environment: Windows XP, Pentium 4
> Reporter: Matthew Purland
> Fix For: 1.2.3, 1.2.4-SNAPSHOT
>
> Original Estimate: 0.08h
> Remaining Estimate: 0.08h
>
> DateTimeConverter in getAsObject for
> Object[] args = new Object[]{value,format.parse(new Date().toString()),_MessageUtils.getLabel(facesContext, uiComponent)};
> throws ParseException Unparseable date: "Thu Jul 10 11:05:21 CDT 2008"
> The
> This is because format.parse(new Date().toString()) is an incorrect format for the DateFormat instance. This is because there is no default SimpleDateFormat instance to format the pattern "Thu Jul 10 11:05:21 CDT 2008"
> This should be changed to use the format method for formatting Date objects as documented in both Date and DateFormat javadoc.
> Please change to:
> format.format(new Date())
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Updated: (MYFACES-1893) DateTimeConverter date format for
converter exception args
Posted by "Matthew Purland (JIRA)" <de...@myfaces.apache.org>.
[ https://issues.apache.org/jira/browse/MYFACES-1893?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Matthew Purland updated MYFACES-1893:
-------------------------------------
Status: Patch Available (was: Open)
> DateTimeConverter date format for converter exception args
> ----------------------------------------------------------
>
> Key: MYFACES-1893
> URL: https://issues.apache.org/jira/browse/MYFACES-1893
> Project: MyFaces Core
> Issue Type: Bug
> Components: General
> Affects Versions: 1.2.2, 1.2.3, 1.2.4-SNAPSHOT
> Environment: Windows XP, Pentium 4
> Reporter: Matthew Purland
> Fix For: 1.2.3, 1.2.4-SNAPSHOT
>
> Attachments: DateTimeConverter.java.patch
>
> Original Estimate: 0.08h
> Remaining Estimate: 0.08h
>
> DateTimeConverter in getAsObject for
> Object[] args = new Object[]{value,format.parse(new Date().toString()),_MessageUtils.getLabel(facesContext, uiComponent)};
> throws ParseException Unparseable date: "Thu Jul 10 11:05:21 CDT 2008"
> The
> This is because format.parse(new Date().toString()) is an incorrect format for the DateFormat instance. This is because there is no default SimpleDateFormat instance to format the pattern "Thu Jul 10 11:05:21 CDT 2008"
> This should be changed to use the format method for formatting Date objects as documented in both Date and DateFormat javadoc.
> Please change to:
> format.format(new Date())
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Commented: (MYFACES-1893) DateTimeConverter date format for
converter exception args
Posted by "Leonardo Uribe (JIRA)" <de...@myfaces.apache.org>.
[ https://issues.apache.org/jira/browse/MYFACES-1893?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12617794#action_12617794 ]
Leonardo Uribe commented on MYFACES-1893:
-----------------------------------------
Checking the full code on DateTimeConvert.java:
public Object getAsObject(FacesContext facesContext, UIComponent uiComponent, String value)
{
if (facesContext == null) throw new NullPointerException("facesContext");
if (uiComponent == null) throw new NullPointerException("uiComponent");
if (value != null)
{
value = value.trim();
if (value.length() > 0)
{
DateFormat format = getDateFormat();
TimeZone tz = getTimeZone();
if( tz != null )
format.setTimeZone( tz );
try
{
return format.parse(value);
}
catch (ParseException e)
{
try {
String type = getType();
Object[] args = new Object[]{value,format.parse(new Date().toString()),_MessageUtils.getLabel(facesContext, uiComponent)};
if(type.equals(TYPE_DATE))
throw new ConverterException(_MessageUtils.getErrorMessage(facesContext,DATE_ID,args));
else if (type.equals(TYPE_TIME))
throw new ConverterException(_MessageUtils.getErrorMessage(facesContext,TIME_ID,args));
else if (type.equals(TYPE_BOTH))
throw new ConverterException(_MessageUtils.getErrorMessage(facesContext,DATETIME_ID,args));
else
throw new ConverterException("invalid type '" + _type + "'");
}catch(ParseException exception) {
throw new ConverterException(exception);
}
}
}
}
return null;
}
The code that causes the exception should be changed as suggested. The relevant code just create an array of Object to be used as substitution to create a message. There is no reason to convert to a String and then try to parse it and convert it to a Date.
The correct solution is do this:
public Object getAsObject(FacesContext facesContext, UIComponent uiComponent, String value)
{
if (facesContext == null) throw new NullPointerException("facesContext");
if (uiComponent == null) throw new NullPointerException("uiComponent");
if (value != null)
{
value = value.trim();
if (value.length() > 0)
{
DateFormat format = getDateFormat();
TimeZone tz = getTimeZone();
if( tz != null )
format.setTimeZone( tz );
try
{
return format.parse(value);
}
catch (ParseException e)
{
String type = getType();
Object[] args = new Object[]{value,format.format(new Date()),_MessageUtils.getLabel(facesContext, uiComponent)};
if(type.equals(TYPE_DATE))
throw new ConverterException(_MessageUtils.getErrorMessage(facesContext,DATE_ID,args));
else if (type.equals(TYPE_TIME))
throw new ConverterException(_MessageUtils.getErrorMessage(facesContext,TIME_ID,args));
else if (type.equals(TYPE_BOTH))
throw new ConverterException(_MessageUtils.getErrorMessage(facesContext,DATETIME_ID,args));
else
throw new ConverterException("invalid type '" + _type + "'");
}
}
}
return null;
}
So in the message the sample date format is the expected date format to be parsed on the outer try.
> DateTimeConverter date format for converter exception args
> ----------------------------------------------------------
>
> Key: MYFACES-1893
> URL: https://issues.apache.org/jira/browse/MYFACES-1893
> Project: MyFaces Core
> Issue Type: Bug
> Components: General
> Affects Versions: 1.2.2, 1.2.3, 1.2.4-SNAPSHOT
> Environment: Windows XP, Pentium 4
> Reporter: Matthew Purland
> Attachments: DateTimeConverter.java.patch
>
> Original Estimate: 0.08h
> Remaining Estimate: 0.08h
>
> DateTimeConverter in getAsObject for
> Object[] args = new Object[]{value,format.parse(new Date().toString()),_MessageUtils.getLabel(facesContext, uiComponent)};
> throws ParseException Unparseable date: "Thu Jul 10 11:05:21 CDT 2008"
> The
> This is because format.parse(new Date().toString()) is an incorrect format for the DateFormat instance. This is because there is no default SimpleDateFormat instance to format the pattern "Thu Jul 10 11:05:21 CDT 2008"
> This should be changed to use the format method for formatting Date objects as documented in both Date and DateFormat javadoc.
> Please change to:
> format.format(new Date())
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Updated: (MYFACES-1893) DateTimeConverter date format for
converter exception args
Posted by "Matthew Purland (JIRA)" <de...@myfaces.apache.org>.
[ https://issues.apache.org/jira/browse/MYFACES-1893?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Matthew Purland updated MYFACES-1893:
-------------------------------------
Status: Patch Available (was: Open)
> DateTimeConverter date format for converter exception args
> ----------------------------------------------------------
>
> Key: MYFACES-1893
> URL: https://issues.apache.org/jira/browse/MYFACES-1893
> Project: MyFaces Core
> Issue Type: Bug
> Components: General
> Affects Versions: 1.2.2, 1.2.3, 1.2.4-SNAPSHOT
> Environment: Windows XP, Pentium 4
> Reporter: Matthew Purland
> Fix For: 1.2.3, 1.2.4-SNAPSHOT
>
> Original Estimate: 0.08h
> Remaining Estimate: 0.08h
>
> DateTimeConverter in getAsObject for
> Object[] args = new Object[]{value,format.parse(new Date().toString()),_MessageUtils.getLabel(facesContext, uiComponent)};
> throws ParseException Unparseable date: "Thu Jul 10 11:05:21 CDT 2008"
> The
> This is because format.parse(new Date().toString()) is an incorrect format for the DateFormat instance. This is because there is no default SimpleDateFormat instance to format the pattern "Thu Jul 10 11:05:21 CDT 2008"
> This should be changed to use the format method for formatting Date objects as documented in both Date and DateFormat javadoc.
> Please change to:
> format.format(new Date())
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.