From 9e0a94ebf07021a1d95050a369c8af340d153dcf Mon Sep 17 00:00:00 2001 From: Foivos Zakkak Date: Fri, 23 Oct 2020 23:13:51 +0300 Subject: [PATCH] Runtime initialization of some imageio related classes --- .../quarkus/deployment/ImageIOProcessor.java | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 core/deployment/src/main/java/io/quarkus/deployment/ImageIOProcessor.java diff --git a/core/deployment/src/main/java/io/quarkus/deployment/ImageIOProcessor.java b/core/deployment/src/main/java/io/quarkus/deployment/ImageIOProcessor.java new file mode 100644 index 0000000000000..a29dc88920fc1 --- /dev/null +++ b/core/deployment/src/main/java/io/quarkus/deployment/ImageIOProcessor.java @@ -0,0 +1,21 @@ +package io.quarkus.deployment; + +import java.util.Arrays; +import java.util.List; + +import io.quarkus.deployment.annotations.BuildStep; +import io.quarkus.deployment.builditem.nativeimage.RuntimeInitializedClassBuildItem; +import io.quarkus.deployment.pkg.steps.NativeBuild; + +public class ImageIOProcessor { + + @BuildStep(onlyIf = NativeBuild.class) + List runtimeInitImageIOClasses() { + // The following classes hold instances of java.awt.color.ICC_ColorSpace that are not allowed in the image + // heap as this class should be initialized at image runtime + // (See https://github.com/quarkusio/quarkus/issues/12535) + return Arrays.asList( + new RuntimeInitializedClassBuildItem("javax.imageio.ImageTypeSpecifier"), + new RuntimeInitializedClassBuildItem("com.sun.imageio.plugins.jpeg.JPEG$JCS")); + } +}