< prev index next >

test/jdk/java/util/TimeZone/Bug8149452.java

Print this page
rev 49854 : 8181157: CLDR Timezone name fallback implementation
Reviewed-by: sherman

@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
  * published by the Free Software Foundation.

@@ -20,11 +20,11 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
 /*
  * @test
- * @bug 8149452 8151876
+ * @bug 8149452 8151876 8181157
  * @summary Check the missing time zone names.
  */
 import java.text.DateFormatSymbols;
 import java.util.ArrayList;
 import java.util.TimeZone;

@@ -32,22 +32,35 @@
 import java.util.List;
 
 public class Bug8149452 {
 
     public static void main(String[] args) {
+        // These zone ids are new in tzdb and yet to be reflected in
+        // CLDR data. Needs to be excluded from the test.
+        // This list is as of CLDR version 29, and should be examined
+        // on the CLDR data upgrade.
+        List<String> NEW_ZONEIDS = List.of(
+                            "America/Punta_Arenas",
+                            "Asia/Atyrau",
+                            "Asia/Barnaul",
+                            "Asia/Famagusta",
+                            "Asia/Tomsk",
+                            "Europe/Astrakhan",
+                            "Europe/Kirov",
+                            "Europe/Saratov",
+                            "Europe/Ulyanovsk");
 
         List<String> listNotFound = new ArrayList<>();
         String[][] zoneStrings = DateFormatSymbols.getInstance()
                 .getZoneStrings();
         for (String tzID : TimeZone.getAvailableIDs()) {
             if (!Arrays.stream(zoneStrings)
                     .anyMatch(zone -> tzID.equalsIgnoreCase(zone[0]))) {
                 // to ignore names for Etc/GMT[+-][0-9]+ which are not supported
-                // Also ignore the TimeZone DisplayNames with GMT[+-]:hh:mm
                 if (!tzID.startsWith("Etc/GMT")
                         && !tzID.startsWith("GMT")
-                        && !TimeZone.getTimeZone(tzID).getDisplayName().startsWith("GMT")) {
+                        && !NEW_ZONEIDS.contains(tzID)) {
                     listNotFound.add(tzID);
                 }
             }
         }
 
< prev index next >