From 2a50c5f3c480acece57876877dfb73d8de2125fe Mon Sep 17 00:00:00 2001 From: Aleksei Efimov Date: Tue, 16 Dec 2014 23:59:57 +0300 Subject: [PATCH] 8051641: Africa/Casablanca transitions is incorrectly calculated starting from 2027 Reviewed-by: sherman --- .../classes/build/tools/tzdb/TzdbZoneRulesProvider.java | 2 +- jdk/test/ProblemList.txt | 3 --- jdk/test/sun/util/calendar/zi/Rule.java | 8 ++++++++ 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/jdk/make/src/classes/build/tools/tzdb/TzdbZoneRulesProvider.java b/jdk/make/src/classes/build/tools/tzdb/TzdbZoneRulesProvider.java index a59ce61eff9..4c92ee9a8af 100644 --- a/jdk/make/src/classes/build/tools/tzdb/TzdbZoneRulesProvider.java +++ b/jdk/make/src/classes/build/tools/tzdb/TzdbZoneRulesProvider.java @@ -758,8 +758,8 @@ class TzdbZoneRulesProvider { if (endYear == Year.MAX_VALUE) { endYear = startYear; lastRules.add(new TransRule(endYear, rule)); - lastRulesStartYear = Math.max(startYear, lastRulesStartYear); } + lastRulesStartYear = Math.max(startYear, lastRulesStartYear); } else { if (endYear == Year.MAX_VALUE) { //endYear = zoneEnd.getYear(); diff --git a/jdk/test/ProblemList.txt b/jdk/test/ProblemList.txt index 1f54f49b22d..d6b5d46898f 100644 --- a/jdk/test/ProblemList.txt +++ b/jdk/test/ProblemList.txt @@ -303,9 +303,6 @@ com/sun/jdi/RedefinePop.sh generic-all # jdk_util -# 8051641 -sun/util/calendar/zi/TestZoneInfo310.java generic-all - # 8062512 java/util/spi/ResourceBundleControlProvider/UserDefaultControlTest.java generic-all diff --git a/jdk/test/sun/util/calendar/zi/Rule.java b/jdk/test/sun/util/calendar/zi/Rule.java index ee4df5b228c..a30f2c04e28 100644 --- a/jdk/test/sun/util/calendar/zi/Rule.java +++ b/jdk/test/sun/util/calendar/zi/Rule.java @@ -126,6 +126,14 @@ class Rule { }); rules.clear(); for (int i = 0; i < n; i++) { + if (i != 0 && recs[i -1].getSave() == recs[i].getSave()) { + // we have two recs back to back with same saving for the same year. + if (recs[i].isLastRule()) { + continue; + } else if (recs[i - 1].isLastRule()) { + rules.remove(rules.size() - 1); + } + } rules.add(recs[i]); } return rules;