You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by te...@apache.org on 2007/01/10 15:27:08 UTC

svn commit: r494822 - in /harmony/enhanced/classlib/trunk/modules/luni/src: main/java/java/util/GregorianCalendar.java test/java/tests/api/java/util/GregorianCalendarTest.java

Author: tellison
Date: Wed Jan 10 06:27:07 2007
New Revision: 494822

URL: http://svn.apache.org/viewvc?view=rev&rev=494822
Log:
Apply patch HARMONY-2961 ([classlib][luni]not able to instance a GregorianCalendar with TimeZone whose offset is greater than 24 hours)

Modified:
    harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/util/GregorianCalendar.java
    harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/api/java/util/GregorianCalendarTest.java

Modified: harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/util/GregorianCalendar.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/util/GregorianCalendar.java?view=diff&rev=494822&r1=494821&r2=494822
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/util/GregorianCalendar.java (original)
+++ harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/util/GregorianCalendar.java Wed Jan 10 06:27:07 2007
@@ -317,10 +317,11 @@
         }
         // Cannot add ZONE_OFFSET to time as it might overflow
         millis += zoneOffset;
-        if (millis < 0) {
+        while (millis < 0) {
             millis += 86400000;
             days--;
-        } else if (millis >= 86400000) {
+        }
+        while (millis >= 86400000) {
             millis -= 86400000;
             days++;
         }

Modified: harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/api/java/util/GregorianCalendarTest.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/api/java/util/GregorianCalendarTest.java?view=diff&rev=494822&r1=494821&r2=494822
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/api/java/util/GregorianCalendarTest.java (original)
+++ harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/api/java/util/GregorianCalendarTest.java Wed Jan 10 06:27:07 2007
@@ -22,6 +22,7 @@
 import java.util.Date;
 import java.util.GregorianCalendar;
 import java.util.Locale;
+import java.util.SimpleTimeZone;
 import java.util.TimeZone;
 import java.util.Vector;
 
@@ -139,6 +140,11 @@
 		// value
 		assertTrue("Incorrect calendar returned",
 				gc1.get(Calendar.HOUR) == ((gc2.get(Calendar.HOUR) + 1) % 12));
+        
+        // Regression test for Haromny-2961
+        SimpleTimeZone timezone = new SimpleTimeZone(-3600 * 24 * 1000 * 2,
+                "GMT");
+        GregorianCalendar gc = new GregorianCalendar(timezone);
 	}
 
 	/**