RFR: 8263754: HexFormat 'fromHex' methods should be static
Claes Redestad
redestad at openjdk.java.net
Thu Mar 25 21:18:31 UTC 2021
On Thu, 25 Mar 2021 20:08:14 GMT, Roger Riggs <rriggs at openjdk.org> wrote:
> A number of HexFormat methods converting from strings to numbers do not use delimiter, prefix, suffix, and uppercase parameters and would be more convenient if the methods were static.
>
> These APIs were added early in JDK 17 and are being updated before GA.
> This PR updates existing uses in the JDK but there may be compiler warnings in non-JDK source files.
>
> public boolean isHexDigit(int);
> public int fromHexDigit(int);
> public int fromHexDigits(java.lang.CharSequence);
> public int fromHexDigits(java.lang.CharSequence, int, int);
> public long fromHexDigitsToLong(java.lang.CharSequence);
> public long fromHexDigitsToLong(java.lang.CharSequence, int, int);
I like the direction. There are a number of orphaned HexFormat instances that can be cleaned up. I might have missed a few.
Do you intend to do the same thing with the toHexDigit methods?
src/java.base/share/classes/sun/security/provider/certpath/RevocationChecker.java line 822:
> 820: StringBuilder hexNumber = new StringBuilder();
> 821: for (int i = 0; i < chars.length; i++) {
> 822: if (HexFormat.isHexDigit(chars[i])) {
`hex` left unused.
src/java.base/share/classes/sun/security/tools/keytool/Main.java line 4582:
> 4580: int pos = 0;
> 4581: for (char c: value.toCharArray()) {
> 4582: if (!HexFormat.isHexDigit(c)) {
`hexFmt` created on line 4576 appears to be unused after this.
src/java.base/share/classes/sun/security/x509/AVA.java line 504:
> 502: throws IOException {
> 503:
> 504: HexFormat hex = HexFormat.of();
`hex` left unused.
-------------
Changes requested by redestad (Reviewer).
PR: https://git.openjdk.java.net/jdk/pull/3205
More information about the core-libs-dev
mailing list