RFR(xs): 8059361: Properties.stringPropertyNames() returns a set inconsistent with the assertions from the spec

Stuart Marks stuart.marks at oracle.com
Wed May 25 23:11:33 UTC 2016


Hi all,

Please review this small spec change. Properties.stringPropertyNames() seems to 
imply that the Set it returns is modifiable. It is, but only partially. Since 
it's a keySet() from a Hashtable, it supports removal but not addition. This 
change removes the implication that the returned set is fully modifiable.

Bug report:

     https://bugs.openjdk.java.net/browse/JDK-8059361

Diffs below.

Thanks,

s'marks



diff -r 4d9388b1ae27 src/java.base/share/classes/java/util/Properties.java
--- a/src/java.base/share/classes/java/util/Properties.java	Wed May 25 13:38:35 
2016 -0700
+++ b/src/java.base/share/classes/java/util/Properties.java	Wed May 25 16:09:22 
2016 -0700
@@ -1044,9 +1044,10 @@
       * properties list.  Properties whose key or value is not
       * of type {@code String} are omitted.
       * <p>
-     * The returned set is not backed by the {@code Properties} object.
-     * Changes to this {@code Properties} are not reflected in the set,
-     * or vice versa.
+     * The returned set is not backed by this {@code Properties} object.
+     * Changes to this {@code Properties} object are not reflected in the
+     * returned set. Any modifications that might be allowed on the
+     * returned set are not reflected in this Properties object.
       *
       * @return  a set of keys in this property list where
       *          the key and its corresponding value are strings,



More information about the core-libs-dev mailing list