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