On 3/8/2023 2:19 PM, Andrey Turbanov wrote:
java.util.Enumeration is a legacy interface from java 1.0.
There is couple of places with cycles which use it to iterate over collections.
We can replace this manual cycle with enchanced-for, which is shorter and
easier to read.
-------------
Commit messages:
- [PATCH] Use enhanced-for cycle instead of Enumeration in JceKeyStore
Changes: https://git.openjdk.org/jdk/pull/12930/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=12930&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8303832
Stats: 8 lines in 1 file changed: 0 ins; 5 del; 3 mod
Patch: https://git.openjdk.org/jdk/pull/12930.diff
Fetch: git fetch https://git.openjdk.org/jdk pull/12930/head:pull/12930
PR: https://git.openjdk.org/jdk/pull/12930
Perhaps updating the various Object assignments to be somewhat more
typed as well would be helpful? E.g.
private static interface Entry { Instant getInstant(); } // or maybe
abstract? All "Date" objects end up as java.time.Instant
private static final class SecretKeyEntry implements Entry { ... } //
and the same for PrivateKeyEntry and SecretKeyEntry
private Hashtable<String, Entry> = new Hashtable<>();
Entry entry = entries.get(alias.toLowerCase(Locale.ENGLISH));
Etc.
Last note - perhaps modify the internal storage of the creation date
from java.util.Date to a java.time.Instant?
createInstant = Instant.now().truncatedTo(ChronoUnit.SECONDS);
That makes the core of engineGetCreationDate to be something like:
return Date.from (entry.getInstant()); // Instant is immutable, Date is
not.