--- 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<String> 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<String> handleGetKeys() {
loadLookupTablesIfNecessary();
@@ -99,7 +102,7 @@
if (keyset != null) {
return keyset;
}
- Set<String> ks = new HashSet<>();
+ Set<String> 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<String, Object> createMap(int size) {
+ protected <K, V> Map<K, V> createMap(int size) {
return new HashMap<>(size);
}
+ protected <E> Set<E> createSet() {
+ return new HashSet<>();
+ }
+
private volatile Map<String, Object> lookup = null;
private volatile Set<String> keyset;
}