RFR: 8274050: Unnecessary Vector usage in javax.crypto
David Schlosnagle
github.com+54594+schlosna at openjdk.java.net
Tue Sep 21 07:34:26 UTC 2021
On Thu, 26 Aug 2021 06:19:49 GMT, Andrey Turbanov <github.com+741251+turbanoff at openjdk.org> wrote:
> In [JDK-8268873](https://bugs.openjdk.java.net/browse/JDK-8268873) I missed a few places, where Vector could be replaced with ArrayList.
> Usage of thread-safe collection `Vector` is unnecessary. It's recommended to use `ArrayList` if a thread-safe implementation is not needed.
src/java.base/share/classes/javax/crypto/CryptoPermissions.java line 348:
> 346: CryptoPermission[] ret = new CryptoPermission[permVector.size()];
> 347: permVector.copyInto(ret);
> 348: return ret;
Should this return the result of `toArray` for safety (though it is sized correctly so per API should return the same `ret` array).
Suggestion:
CryptoPermission[] ret = new CryptoPermission[permList.size()];
return permList.toArray(ret);
Separate perf nit would be to use size zero array as arg to `toArray` per https://shipilev.net/blog/2016/arrays-wisdom-ancients/
Suggestion:
return permList.toArray(new CryptoPermission[0]);
-------------
PR: https://git.openjdk.java.net/jdk/pull/5261
More information about the security-dev
mailing list