Bryce McKinlay wrote:
> Jeroen Frijters wrote:
> >I have some code that depends on unspecified behavior of 
> java.util.Date.
> >In the Sun JDK if you pass out of range parameters to the Date
> >constructors that take year, month, date, etc. it will automatically
> >convert to a valid date (for example, new Date(104, 8, 41) is Oct 11,
> >2004.)
> >
> >I have a rather lame patch that addresses this (see below), 
> >would anyone object to this?
>
> Unfortunately I don't think this patch is the correct fix. 
> GregorianCalendar should already "roll over" overflowed date values, 
> regardless of whether these are set by the constructor or by 
> the add() method - check the test case below for an example - so I 
> believe the way the Date() constructors are calling GregorianCalendar
> are correct.

Ugh. Thanks. So this basically means that GregorianCalendar is totally
broken, between this bug, the fact that it croaks on new
GregorianCalendar(1970, 0, 1).get(Calendar.DAY_OF_MONTH) and the bug
that Stephen Crawley posted about.

> I think the real problem lies in the interaction between 
> GregorianCalendar and TimeZone - we need to make sure the 
> DAY_OF_MONTH and other values in a lenient calendar instance
> get normalized before querying the TimeZone.

Yes. I'll see if I can get it fixed.

Regards,
Jeroen


_______________________________________________
Classpath mailing list
[EMAIL PROTECTED]
http://lists.gnu.org/mailman/listinfo/classpath

Reply via email to