RFR: 8231640: (prop) Canonical property storage [v15]
dfuchs at openjdk.java.net
Tue Sep 14 20:43:40 UTC 2021
On Tue, 14 Sep 2021 18:53:27 GMT, Roger Riggs <rriggs at openjdk.org> wrote:
>> Jaikiran Pai has updated the pull request incrementally with one additional commit since the last revision:
>> Introduce a test to make sure backslash character in the system property value doesn't cause unexpected output.
>> Plus minor updates to tests to add additional checks.
> src/java.base/share/classes/java/util/Properties.java line 929:
>> 927: @SuppressWarnings("unchecked")
>> 928: var entries = new ArrayList<>(((Map<String, String>) (Map) map).entrySet());
>> 929: entries.sort(Map.Entry.comparingByKey());
> Since Properties can be subclassed and the `entrySet()` method overridden, should the set of entries to be sorted be taken from this.entrySet() instead of bypassing the public API?
Hmm, so if someone has subclassed `Properties` and overridden `entrySet` for the purpose of ordering entries, that trick will no longer work with the new code. I wonder - should we sort entries only when the `java.util.Properties.storeDate` is also defined and not empty? Or should we simply state in the release notes that such tricks will no longer work?
More information about the core-libs-dev