8037180: [TEST_BUG] test/sun/util/calendar/zi/Zoneinfo.java incorrectly calculates raw GMT offset change time
authoraefimov
Fri, 14 Mar 2014 15:50:20 +0400
changeset 23349 30ea1ad58166
parent 23348 c6aac3e0bc8f
child 23350 0aac9866d9e5
8037180: [TEST_BUG] test/sun/util/calendar/zi/Zoneinfo.java incorrectly calculates raw GMT offset change time Reviewed-by: coffeys, okutsu
jdk/test/sun/util/calendar/zi/Zoneinfo.java
--- a/jdk/test/sun/util/calendar/zi/Zoneinfo.java	Fri Mar 14 15:49:46 2014 +0400
+++ b/jdk/test/sun/util/calendar/zi/Zoneinfo.java	Fri Mar 14 15:50:20 2014 +0400
@@ -372,6 +372,7 @@
         ZoneRec zrec = zone.get(zone.size()-1);
         tz.getOffsetIndex(zrec.getGmtOffset());
 
+        int lastGmtOffsetValue = -1;
         int currentSave = 0;
         boolean usedZone;
         for (int zindex = 0; zindex < zone.size(); zindex++) {
@@ -380,9 +381,12 @@
             gmtOffset = zrec.getGmtOffset();
             int stdOffset = zrec.getDirectSave();
 
+            if (gmtOffset != lastGmtOffsetValue) {
+                tz.setRawOffset(gmtOffset, fromTime);
+                lastGmtOffsetValue = gmtOffset;
+            }
             // If this is the last zone record, take the last rule info.
             if (!zrec.hasUntil()) {
-                tz.setRawOffset(gmtOffset, fromTime);
                 if (zrec.hasRuleReference()) {
                     tz.setLastRules(zrec.getRuleRef().getLastRules());
                 } else if (stdOffset != 0) {