You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@myfaces.apache.org by "Ulf Helmke (JIRA)" <de...@myfaces.apache.org> on 2005/12/12 12:48:46 UTC
[jira] Created: (MYFACES-934) Parsing UserData in org.apache.myfaces.custom.date.HtmlInputDate.UserData throws java.lang.NumberFormatException, not java.text.ParseException
Parsing UserData in org.apache.myfaces.custom.date.HtmlInputDate.UserData throws java.lang.NumberFormatException, not java.text.ParseException
----------------------------------------------------------------------------------------------------------------------------------------------
Key: MYFACES-934
URL: http://issues.apache.org/jira/browse/MYFACES-934
Project: MyFaces
Type: Bug
Components: Tomahawk
Versions: 1.1.1, Nightly
Environment: windows, java 1.5.0_05, tomcat 5.5
Reporter: Ulf Helmke
Priority: Minor
Hello,
The UserData.parse method declares to throw aParseException. But it never throws a ParseException, the Integer.parseInt throws a NumberFormatException instead:
public Date parse() throws ParseException{
Calendar tempCalendar=Calendar.getInstance();
if (timeZone != null)
tempCalendar.setTimeZone(timeZone);
tempCalendar.set(Calendar.DAY_OF_MONTH,Integer.parseInt(day));
tempCalendar.set(Calendar.MONTH,Integer.parseInt(month)-1);
tempCalendar.set(Calendar.YEAR,Integer.parseInt(year));
if (uses_ampm) {
int int_hours = Integer.parseInt(hours);
// ampm hours must be in range 0-11 to be handled right; we have to handle "12" specially
if (int_hours == 12) {
int_hours = 0;
}
tempCalendar.set(Calendar.HOUR,int_hours);
tempCalendar.set(Calendar.AM_PM,Integer.parseInt(ampm));
} else {
tempCalendar.set(Calendar.HOUR_OF_DAY,Integer.parseInt(hours));
}
tempCalendar.set(Calendar.MINUTE,Integer.parseInt(minutes));
tempCalendar.set(Calendar.SECOND,Integer.parseInt(seconds));
tempCalendar.set(Calendar.MILLISECOND, 0);
return tempCalendar.getTime();
}
The most simple approach to solve it: Catch the NumberFormatException inside the parse method and throw a new ParseException:
public Date parse() throws ParseException{
Calendar tempCalendar=Calendar.getInstance();
if (timeZone != null)
tempCalendar.setTimeZone(timeZone);
try {
tempCalendar.set(Calendar.DAY_OF_MONTH,Integer.parseInt(day));
tempCalendar.set(Calendar.MONTH,Integer.parseInt(month)-1);
tempCalendar.set(Calendar.YEAR,Integer.parseInt(year));
if (uses_ampm) {
int int_hours = Integer.parseInt(hours);
// ampm hours must be in range 0-11 to be handled right; we have to handle "12" specially
if (int_hours == 12) {
int_hours = 0;
}
tempCalendar.set(Calendar.HOUR,int_hours);
tempCalendar.set(Calendar.AM_PM,Integer.parseInt(ampm));
} else {
tempCalendar.set(Calendar.HOUR_OF_DAY,Integer.parseInt(hours));
}
tempCalendar.set(Calendar.MINUTE,Integer.parseInt(minutes));
tempCalendar.set(Calendar.SECOND,Integer.parseInt(seconds));
tempCalendar.set(Calendar.MILLISECOND, 0);
} catch (NumberFormatException e) {
throw new ParseException(e.getMessage(),0);
}
return tempCalendar.getTime();
}
It would be a good idea to write some new tests. The existing Tests do not deal with invalid form data.
Greetings Ulf
--
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
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira
[jira] Closed: (MYFACES-934) Parsing UserData in
org.apache.myfaces.custom.date.HtmlInputDate.UserData throws
java.lang.NumberFormatException, not java.text.ParseException
Posted by "Martin Marinschek (JIRA)" <de...@myfaces.apache.org>.
[ http://issues.apache.org/jira/browse/MYFACES-934?page=all ]
Martin Marinschek closed MYFACES-934:
-------------------------------------
> Parsing UserData in org.apache.myfaces.custom.date.HtmlInputDate.UserData throws java.lang.NumberFormatException, not java.text.ParseException
> ----------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: MYFACES-934
> URL: http://issues.apache.org/jira/browse/MYFACES-934
> Project: MyFaces
> Type: Bug
> Components: Tomahawk
> Versions: 1.1.1, Nightly
> Environment: windows, java 1.5.0_05, tomcat 5.5
> Reporter: Ulf Helmke
> Priority: Minor
>
> Hello,
> The UserData.parse method declares to throw aParseException. But it never throws a ParseException, the Integer.parseInt throws a NumberFormatException instead:
> public Date parse() throws ParseException{
> Calendar tempCalendar=Calendar.getInstance();
> if (timeZone != null)
> tempCalendar.setTimeZone(timeZone);
>
> tempCalendar.set(Calendar.DAY_OF_MONTH,Integer.parseInt(day));
> tempCalendar.set(Calendar.MONTH,Integer.parseInt(month)-1);
> tempCalendar.set(Calendar.YEAR,Integer.parseInt(year));
> if (uses_ampm) {
> int int_hours = Integer.parseInt(hours);
> // ampm hours must be in range 0-11 to be handled right; we have to handle "12" specially
> if (int_hours == 12) {
> int_hours = 0;
> }
> tempCalendar.set(Calendar.HOUR,int_hours);
> tempCalendar.set(Calendar.AM_PM,Integer.parseInt(ampm));
> } else {
> tempCalendar.set(Calendar.HOUR_OF_DAY,Integer.parseInt(hours));
> }
> tempCalendar.set(Calendar.MINUTE,Integer.parseInt(minutes));
> tempCalendar.set(Calendar.SECOND,Integer.parseInt(seconds));
> tempCalendar.set(Calendar.MILLISECOND, 0);
>
> return tempCalendar.getTime();
> }
> The most simple approach to solve it: Catch the NumberFormatException inside the parse method and throw a new ParseException:
> public Date parse() throws ParseException{
> Calendar tempCalendar=Calendar.getInstance();
> if (timeZone != null)
> tempCalendar.setTimeZone(timeZone);
>
> try {
> tempCalendar.set(Calendar.DAY_OF_MONTH,Integer.parseInt(day));
> tempCalendar.set(Calendar.MONTH,Integer.parseInt(month)-1);
> tempCalendar.set(Calendar.YEAR,Integer.parseInt(year));
> if (uses_ampm) {
> int int_hours = Integer.parseInt(hours);
> // ampm hours must be in range 0-11 to be handled right; we have to handle "12" specially
> if (int_hours == 12) {
> int_hours = 0;
> }
> tempCalendar.set(Calendar.HOUR,int_hours);
> tempCalendar.set(Calendar.AM_PM,Integer.parseInt(ampm));
> } else {
> tempCalendar.set(Calendar.HOUR_OF_DAY,Integer.parseInt(hours));
> }
> tempCalendar.set(Calendar.MINUTE,Integer.parseInt(minutes));
> tempCalendar.set(Calendar.SECOND,Integer.parseInt(seconds));
> tempCalendar.set(Calendar.MILLISECOND, 0);
> } catch (NumberFormatException e) {
> throw new ParseException(e.getMessage(),0);
> }
>
> return tempCalendar.getTime();
> }
> It would be a good idea to write some new tests. The existing Tests do not deal with invalid form data.
> Greetings Ulf
--
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
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira
[jira] Resolved: (MYFACES-934) Parsing UserData in org.apache.myfaces.custom.date.HtmlInputDate.UserData throws java.lang.NumberFormatException, not java.text.ParseException
Posted by "Matthias Weßendorf (JIRA)" <de...@myfaces.apache.org>.
[ http://issues.apache.org/jira/browse/MYFACES-934?page=all ]
Matthias Weßendorf resolved MYFACES-934:
----------------------------------------
Resolution: Fixed
fixed nbuild
> Parsing UserData in org.apache.myfaces.custom.date.HtmlInputDate.UserData throws java.lang.NumberFormatException, not java.text.ParseException
> ----------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: MYFACES-934
> URL: http://issues.apache.org/jira/browse/MYFACES-934
> Project: MyFaces
> Type: Bug
> Components: Tomahawk
> Versions: 1.1.1, Nightly
> Environment: windows, java 1.5.0_05, tomcat 5.5
> Reporter: Ulf Helmke
> Priority: Minor
>
> Hello,
> The UserData.parse method declares to throw aParseException. But it never throws a ParseException, the Integer.parseInt throws a NumberFormatException instead:
> public Date parse() throws ParseException{
> Calendar tempCalendar=Calendar.getInstance();
> if (timeZone != null)
> tempCalendar.setTimeZone(timeZone);
>
> tempCalendar.set(Calendar.DAY_OF_MONTH,Integer.parseInt(day));
> tempCalendar.set(Calendar.MONTH,Integer.parseInt(month)-1);
> tempCalendar.set(Calendar.YEAR,Integer.parseInt(year));
> if (uses_ampm) {
> int int_hours = Integer.parseInt(hours);
> // ampm hours must be in range 0-11 to be handled right; we have to handle "12" specially
> if (int_hours == 12) {
> int_hours = 0;
> }
> tempCalendar.set(Calendar.HOUR,int_hours);
> tempCalendar.set(Calendar.AM_PM,Integer.parseInt(ampm));
> } else {
> tempCalendar.set(Calendar.HOUR_OF_DAY,Integer.parseInt(hours));
> }
> tempCalendar.set(Calendar.MINUTE,Integer.parseInt(minutes));
> tempCalendar.set(Calendar.SECOND,Integer.parseInt(seconds));
> tempCalendar.set(Calendar.MILLISECOND, 0);
>
> return tempCalendar.getTime();
> }
> The most simple approach to solve it: Catch the NumberFormatException inside the parse method and throw a new ParseException:
> public Date parse() throws ParseException{
> Calendar tempCalendar=Calendar.getInstance();
> if (timeZone != null)
> tempCalendar.setTimeZone(timeZone);
>
> try {
> tempCalendar.set(Calendar.DAY_OF_MONTH,Integer.parseInt(day));
> tempCalendar.set(Calendar.MONTH,Integer.parseInt(month)-1);
> tempCalendar.set(Calendar.YEAR,Integer.parseInt(year));
> if (uses_ampm) {
> int int_hours = Integer.parseInt(hours);
> // ampm hours must be in range 0-11 to be handled right; we have to handle "12" specially
> if (int_hours == 12) {
> int_hours = 0;
> }
> tempCalendar.set(Calendar.HOUR,int_hours);
> tempCalendar.set(Calendar.AM_PM,Integer.parseInt(ampm));
> } else {
> tempCalendar.set(Calendar.HOUR_OF_DAY,Integer.parseInt(hours));
> }
> tempCalendar.set(Calendar.MINUTE,Integer.parseInt(minutes));
> tempCalendar.set(Calendar.SECOND,Integer.parseInt(seconds));
> tempCalendar.set(Calendar.MILLISECOND, 0);
> } catch (NumberFormatException e) {
> throw new ParseException(e.getMessage(),0);
> }
>
> return tempCalendar.getTime();
> }
> It would be a good idea to write some new tests. The existing Tests do not deal with invalid form data.
> Greetings Ulf
--
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
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira