RFR: 8297750: Unnecessary Vector usage in IIORegistry
David Schlosnagle
duke at openjdk.org
Tue Nov 29 07:39:17 UTC 2022
On Sun, 27 Nov 2022 17:51:15 GMT, Andrey Turbanov <aturbanov at openjdk.org> wrote:
> Field `javax.imageio.spi.IIORegistry#initialCategories` is modified only in `static {}` block, which makes it effectively final. Instead of legacy synchronized `Vector` we can use non-threadsafe `ArrayList` here.
src/java.desktop/share/classes/javax/imageio/spi/IIORegistry.java line 89:
> 87: * categories (superinterfaces) to be used in the constructor.
> 88: */
> 89: private static final ArrayList<Class<?>> initialCategories = new ArrayList<>(5);
Should this be an immutable list and remove the static block?
Suggestion:
private static final List<Class<?>> initialCategories = List.of(
ImageReaderSpi.class,
ImageWriterSpi.class,
ImageTranscoderSpi.class,
ImageInputStreamSpi.class,
ImageOutputStreamSpi.class);
-------------
PR: https://git.openjdk.org/jdk/pull/11379
More information about the client-libs-dev
mailing list