On Sun, 27 Nov 2022 17:51:15 GMT, Andrey Turbanov <aturba...@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

Reply via email to