You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@harmony.apache.org by Paulex Yang <pa...@gmail.com> on 2006/08/22 07:27:22 UTC

[classlib][compatiblity](Re: [jira] Created: (HARMONY-1241) [classlib][util] unexpected IllegalArgumentException for java.util.SimpleTimeZone(13 params))

Seems both Harmony and RI's behavior violates spec, which says:

"The mode specifies either wall_time or standard_time or UTC_time." and 
|"IAE <ci...@gmail.com>| - if the month, day, 
dayOfWeek, time more, or time parameters are out of range for the start 
or end rule, or if a time mode value is invalid."

IIUC, it means only the three constants wall_time(0), standard_time(1) 
and UTC_time(2) are valid values for startTimeMode/endTimeMode, but 
interesting facts are: RI accepts any values from Integer.MIN_VALUE to 
MAX_VALUE, while Harmony accepts 1-4 and throws exception for others. 
Further, seems RI doesn't validate some other parameters as spec,too 
(startDayOfWeek or so).

I suggest to follow RI in this case, but like to listen to others.



Vladimir Ivanov (JIRA) wrote:
> [classlib][util] unexpected IllegalArgumentException for java.util.SimpleTimeZone(13 params)
> --------------------------------------------------------------------------------------------
>
>                  Key: HARMONY-1241
>                  URL: http://issues.apache.org/jira/browse/HARMONY-1241
>              Project: Harmony
>           Issue Type: Bug
>           Components: Classlib
>             Reporter: Vladimir Ivanov
>
>
> The method java.util.SimpleTimeZone.SimpleTimeZone(int rawOffset, String ID, int startMonth, int startDay, int startDayOfWeek, int startTime, int startTimeMode, int endMonth, int endDay, int endDayOfWeek, int endTime, int endTimeMode, int dstSavings) for correct parameters throws IllegalArgumentException on Harmony.
>
> ======================= test.java =========================
> import java.util.SimpleTimeZone;
> import java.util.TimeZone;
> import java.util.Calendar;
>
> public class test {
>     public static void main(String args[]) {
>         System.out.println("DST_OFFSET = " + Calendar.DST_OFFSET);
>         System.out.println("res = " +  new SimpleTimeZone(
>                   TimeZone.LONG,
>                   "Europe/Paris",
>                   SimpleTimeZone.STANDARD_TIME,
>                   SimpleTimeZone.STANDARD_TIME,
>                   SimpleTimeZone.UTC_TIME,
>                   SimpleTimeZone.WALL_TIME,
>                   SimpleTimeZone.WALL_TIME,
>                   TimeZone.SHORT,
>                   SimpleTimeZone.STANDARD_TIME,
>                   TimeZone.LONG,
>                   SimpleTimeZone.UTC_TIME,
>                   SimpleTimeZone.STANDARD_TIME,
>                   TimeZone.LONG));
>     }
> }
> =======================================================
>
> Output:
> C:\tmp\tmp17>C:\jrockit-jdk1.5.0-windows-ia32\bin\java.exe -cp . -showversion test
> java version "1.5.0"
> Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0-b64)
> BEA WebLogic JRockit(R) (build dra-38972-20041208-2001-win-ia32, R25.0.0-75, GC: System optimized over throughput (initial strategy singleparpar))
>
> DST_OFFSET = 16
> res = java.util.SimpleTimeZone[id=Europe/Paris,offset=1,dstSavings=1,useDaylight=true,startYear=0,startMode=2,startMonth=1,startDay=1,startDayOfWeek=2
> ,startTime=0,startTimeMode=0,endMode=2,endMonth=0,endDay=1,endDayOfWeek=1,endTime=2,endTimeMode=1]
>
> C:\tmp\tmp17>C:\harmony\classlib1.5\deploy\jdk\jre\bin\java.exe -cp . -showversion test
> java version 1.5 (subset)
>
> (c) Copyright 1991, 2006 The Apache Software Foundation or its licensors, as applicable.
> DST_OFFSET = 16
> Exception in thread "main" java.lang.IllegalArgumentException: DST offset: 0
>         at java.util.SimpleTimeZone.<init>(SimpleTimeZone.java:216)
>         at test.main(test.java:8)
>
>
>
>   


-- 
Paulex Yang
China Software Development Lab
IBM



---------------------------------------------------------------------
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
For additional commands, e-mail: harmony-dev-help@incubator.apache.org


Re: [classlib][compatiblity](Re: [jira] Created: (HARMONY-1241) [classlib][util] unexpected IllegalArgumentException for java.util.SimpleTimeZone(13 params))

Posted by Richard Liang <ri...@gmail.com>.

Paulex Yang wrote:
> Seems both Harmony and RI's behavior violates spec, which says:
>
> "The mode specifies either wall_time or standard_time or UTC_time." 
> and |"IAE <ci...@gmail.com>| - if the month, 
> day, dayOfWeek, time more, or time parameters are out of range for the 
> start or end rule, or if a time mode value is invalid."
>
> IIUC, it means only the three constants wall_time(0), standard_time(1) 
> and UTC_time(2) are valid values for startTimeMode/endTimeMode, but 
> interesting facts are: RI accepts any values from Integer.MIN_VALUE to 
> MAX_VALUE, while Harmony accepts 1-4 and throws exception for others. 
> Further, seems RI doesn't validate some other parameters as spec,too 
> (startDayOfWeek or so).
>
> I suggest to follow RI in this case, but like to listen to others.
>
+1 to follow RI.
>
>
> Vladimir Ivanov (JIRA) wrote:
>> [classlib][util] unexpected IllegalArgumentException for 
>> java.util.SimpleTimeZone(13 params)
>> -------------------------------------------------------------------------------------------- 
>>
>>
>>                  Key: HARMONY-1241
>>                  URL: http://issues.apache.org/jira/browse/HARMONY-1241
>>              Project: Harmony
>>           Issue Type: Bug
>>           Components: Classlib
>>             Reporter: Vladimir Ivanov
>>
>>
>> The method java.util.SimpleTimeZone.SimpleTimeZone(int rawOffset, 
>> String ID, int startMonth, int startDay, int startDayOfWeek, int 
>> startTime, int startTimeMode, int endMonth, int endDay, int 
>> endDayOfWeek, int endTime, int endTimeMode, int dstSavings) for 
>> correct parameters throws IllegalArgumentException on Harmony.
>>
>> ======================= test.java =========================
>> import java.util.SimpleTimeZone;
>> import java.util.TimeZone;
>> import java.util.Calendar;
>>
>> public class test {
>>     public static void main(String args[]) {
>>         System.out.println("DST_OFFSET = " + Calendar.DST_OFFSET);
>>         System.out.println("res = " +  new SimpleTimeZone(
>>                   TimeZone.LONG,
>>                   "Europe/Paris",
>>                   SimpleTimeZone.STANDARD_TIME,
>>                   SimpleTimeZone.STANDARD_TIME,
>>                   SimpleTimeZone.UTC_TIME,
>>                   SimpleTimeZone.WALL_TIME,
>>                   SimpleTimeZone.WALL_TIME,
>>                   TimeZone.SHORT,
>>                   SimpleTimeZone.STANDARD_TIME,
>>                   TimeZone.LONG,
>>                   SimpleTimeZone.UTC_TIME,
>>                   SimpleTimeZone.STANDARD_TIME,
>>                   TimeZone.LONG));
>>     }
>> }
>> =======================================================
>>
>> Output:
>> C:\tmp\tmp17>C:\jrockit-jdk1.5.0-windows-ia32\bin\java.exe -cp . 
>> -showversion test
>> java version "1.5.0"
>> Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0-b64)
>> BEA WebLogic JRockit(R) (build dra-38972-20041208-2001-win-ia32, 
>> R25.0.0-75, GC: System optimized over throughput (initial strategy 
>> singleparpar))
>>
>> DST_OFFSET = 16
>> res = 
>> java.util.SimpleTimeZone[id=Europe/Paris,offset=1,dstSavings=1,useDaylight=true,startYear=0,startMode=2,startMonth=1,startDay=1,startDayOfWeek=2 
>>
>> ,startTime=0,startTimeMode=0,endMode=2,endMonth=0,endDay=1,endDayOfWeek=1,endTime=2,endTimeMode=1] 
>>
>>
>> C:\tmp\tmp17>C:\harmony\classlib1.5\deploy\jdk\jre\bin\java.exe -cp . 
>> -showversion test
>> java version 1.5 (subset)
>>
>> (c) Copyright 1991, 2006 The Apache Software Foundation or its 
>> licensors, as applicable.
>> DST_OFFSET = 16
>> Exception in thread "main" java.lang.IllegalArgumentException: DST 
>> offset: 0
>>         at java.util.SimpleTimeZone.<init>(SimpleTimeZone.java:216)
>>         at test.main(test.java:8)
>>
>>
>>
>>   
>
>

-- 
Richard Liang
China Software Development Lab, IBM 



---------------------------------------------------------------------
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
For additional commands, e-mail: harmony-dev-help@incubator.apache.org