diff -r 6dd2370b4cd3 -r 0987999ed367 jdk/src/share/classes/sun/util/resources/OpenListResourceBundle.java --- a/jdk/src/share/classes/sun/util/resources/OpenListResourceBundle.java Sun Dec 09 19:13:08 2012 +0000 +++ b/jdk/src/share/classes/sun/util/resources/OpenListResourceBundle.java Mon Dec 10 10:52:11 2012 +0900 @@ -67,6 +67,7 @@ } // Implements java.util.ResourceBundle.handleGetObject; inherits javadoc specification. + @Override public Object handleGetObject(String key) { if (key == null) { throw new NullPointerException(); @@ -79,6 +80,7 @@ /** * Implementation of ResourceBundle.getKeys. */ + @Override public Enumeration getKeys() { ResourceBundle parent = this.parent; return new ResourceBundleEnumeration(handleGetKeys(), @@ -86,7 +88,8 @@ } /** - * Returns a set of keys provided in this resource bundle + * Returns a set of keys provided in this resource bundle, + * including no parents. */ public Set handleGetKeys() { loadLookupTablesIfNecessary(); @@ -99,7 +102,7 @@ if (keyset != null) { return keyset; } - Set ks = new HashSet<>(); + Set ks = createSet(); ks.addAll(handleGetKeys()); if (parent != null) { ks.addAll(parent.keySet()); @@ -113,13 +116,6 @@ } /** - * Returns the parent bundle - */ - public OpenListResourceBundle getParent() { - return (OpenListResourceBundle)parent; - } - - /** * See ListResourceBundle class description. */ abstract protected Object[][] getContents(); @@ -160,10 +156,14 @@ * Lets subclasses provide specialized Map implementations. * Default uses HashMap. */ - protected Map createMap(int size) { + protected Map createMap(int size) { return new HashMap<>(size); } + protected Set createSet() { + return new HashSet<>(); + } + private volatile Map lookup = null; private volatile Set keyset; }