--- old/make/jdk/src/classes/build/tools/tzdb/TzdbZoneRulesCompiler.java 2018-09-18 10:34:46.145975973 -0700 +++ new/make/jdk/src/classes/build/tools/tzdb/TzdbZoneRulesCompiler.java 2018-09-18 10:34:45.781968779 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 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 @@ -65,8 +65,6 @@ import java.text.ParsePosition; import java.util.ArrayList; import java.util.Arrays; -import java.util.HashMap; -import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.NoSuchElementException; @@ -76,6 +74,7 @@ import java.util.regex.Matcher; import java.util.regex.MatchResult; import java.util.regex.Pattern; +import java.util.stream.Collectors; /** * A compiler that reads a set of TZDB time-zone files and builds a single @@ -256,8 +255,10 @@ for (String regionId : regionArray) { out.writeUTF(regionId); } - // rules -- hashset -> remove the dup - List rulesList = new ArrayList<>(new HashSet<>(builtZones.values())); + // rules -- remove the dup + List rulesList = builtZones.values().stream() + .distinct() + .collect(Collectors.toList()); out.writeShort(rulesList.size()); ByteArrayOutputStream baos = new ByteArrayOutputStream(1024); for (ZoneRules rules : rulesList) {