Hi,
Today suddenly the java.text.DateFormat.Test mauve test started failing.
This was a side effect of it setting a Calendar to non-lenience mode.
July 30, 2006 falls in the 6th week of the month and we didn't allow six
weeks in months. I added a a explicit Mauve test for this and fixed it
as follows:
2006-07-30 Mark Wielaard <[EMAIL PROTECTED]>
* java/util/GregorianCalendar.java (maximums): Months can have up to
6 weeks.
(nonLeniencyCheck): weeks is either 5 or 6.
Also checked into the release and generics branch.
I so suspect we need the check to be a little stricter than this. The
Mauve test also makes sure we handle months with exactly 4 weeks
(February 1998) correctly, but it doesn't check yet what happens if you
overflow the week number in such a month.
Cheers,
Mark
Index: java/util/GregorianCalendar.java
===================================================================
RCS file: /cvsroot/classpath/classpath/java/util/GregorianCalendar.java,v
retrieving revision 1.44
diff -u -r1.44 GregorianCalendar.java
--- java/util/GregorianCalendar.java 25 Mar 2006 11:06:25 -0000 1.44
+++ java/util/GregorianCalendar.java 30 Jul 2006 20:39:51 -0000
@@ -445,7 +445,7 @@
if (isSet[WEEK_OF_MONTH])
{
- int weeks = (month == 1 && leap == 0) ? 4 : 5;
+ int weeks = (month == 1 && leap == 0) ? 5 : 6;
if (fields[WEEK_OF_MONTH] < 1 || fields[WEEK_OF_MONTH] > weeks)
throw new IllegalArgumentException("Illegal WEEK_OF_MONTH.");
}
@@ -1164,7 +1164,7 @@
*/
private static final int[] maximums =
{
- AD, 5000000, 11, 53, 5, 31, 366,
+ AD, 5000000, 11, 53, 6, 31, 366,
SATURDAY, 5, PM, 12, 23, 59, 59, 999,
+(12 * 60 * 60 * 1000),
(12 * 60 * 60 * 1000)