Skip to content

Native Build Failed when using camel-quarkus-pdf #8093

@alexandredavi

Description

@alexandredavi

Bug description

My reference code is:

definition
  .process(new MergePdfFilesHeadersProcessor())
  .to("pdf:merge")
  .process(new MergePdfFilesOutputProcessor());

I am able to run the code but while creating the native image it will come up with below error message.

Error: Unsupported features in 3 methods
Detailed message:
Error: An object of type 'java.awt.color.ICC_ColorSpace' was found in the image heap. This type, however, is marked for initialization at image run time for the following reason: classes are initialized at run time by default.
This is not allowed for correctness reasons: All objects that are stored in the image heap must be initialized at build time.
You now have two options to resolve this:
1) If it is intended that objects of type 'java.awt.color.ICC_ColorSpace' are persisted in the image heap, add 
    '--initialize-at-build-time=java.awt.color.ICC_ColorSpace'
to the native-image arguments. Note that initializing new types can store additional objects to the heap. It is advised to check the static fields of 'java.awt.color.ICC_ColorSpace' to see if they are safe for build-time initialization,  and that they do not contain any sensitive data that should not become part of the image.
2) If these objects should not be stored in the image heap, you can use 
------------------------------------------------------------------------------------------------------------------------
    '--trace-object-instantiation=java.awt.color.ICC_ColorSpace'
to find classes that instantiate these objects. Once you found such a class, you can mark it explicitly for run time initialization with 
    '--initialize-at-run-time=<culprit>'
to prevent the instantiation of the object.
If you are seeing this message after enabling '--strict-image-heap', this means that some objects ended up in the image heap without their type being marked with --initialize-at-build-time.
To fix this, include '--initialize-at-build-time=java.awt.color.ICC_ColorSpace' in your configuration. If the classes do not originate from your code, it is advised to update all library or framework dependencies to the latest version before addressing this error.
Please address this problem to be prepared for future releases of GraalVM.
The following detailed trace displays from which field in the code the object was reached.
Trace: Object was reached by
  trying to constant fold static field org.apache.pdfbox.pdmodel.graphics.color.PDCIEDictionaryBasedColorSpace.CIEXYZ
    at org.apache.pdfbox.pdmodel.graphics.color.PDCIEDictionaryBasedColorSpace.convXYZtoRGB(PDCIEDictionaryBasedColorSpace.java:102)
  parsing method org.apache.pdfbox.pdmodel.graphics.color.PDCIEDictionaryBasedColorSpace.convXYZtoRGB(PDCIEDictionaryBasedColorSpace.java:90) reachable via the parsing context
    at static root method.(Unknown Source)
Error: An object of type 'java.awt.image.ColorConvertOp' was found in the image heap. This type, however, is marked for initialization at image run time for the following reason: classes are initialized at run time by default.
This is not allowed for correctness reasons: All objects that are stored in the image heap must be initialized at build time.
You now have two options to resolve this:
1) If it is intended that objects of type 'java.awt.image.ColorConvertOp' are persisted in the image heap, add 
    '--initialize-at-build-time=java.awt.image.ColorConvertOp'
to the native-image arguments. Note that initializing new types can store additional objects to the heap. It is advised to check the static fields of 'java.awt.image.ColorConvertOp' to see if they are safe for build-time initialization,  and that they do not contain any sensitive data that should not become part of the image.
2) If these objects should not be stored in the image heap, you can use 
    '--trace-object-instantiation=java.awt.image.ColorConvertOp'
to find classes that instantiate these objects. Once you found such a class, you can mark it explicitly for run time initialization with 
    '--initialize-at-run-time=<culprit>'
to prevent the instantiation of the object.
If you are seeing this message after enabling '--strict-image-heap', this means that some objects ended up in the image heap without their type being marked with --initialize-at-build-time.
To fix this, include '--initialize-at-build-time=java.awt.image.ColorConvertOp' in your configuration. If the classes do not originate from your code, it is advised to update all library or framework dependencies to the latest version before addressing this error.
Please address this problem to be prepared for future releases of GraalVM.
The following detailed trace displays from which field in the code the object was reached.
Trace: Object was reached by
  reading field org.apache.pdfbox.pdmodel.graphics.color.PDColorSpace.colorConvertOp of constant 
    org.apache.pdfbox.pdmodel.graphics.color.PDDeviceCMYK@47c593d9: DeviceCMYK
  reading static field org.apache.pdfbox.pdmodel.graphics.color.PDDeviceCMYK.INSTANCE
    at org.apache.pdfbox.pdmodel.interactive.form.PDDefaultAppearanceString.processSetFontColor(PDDefaultAppearanceString.java:199)
  parsing method org.apache.pdfbox.pdmodel.interactive.form.PDDefaultAppearanceString.processSetFontColor(PDDefaultAppearanceString.java:190) reachable via the parsing context
    at org.apache.pdfbox.pdmodel.interactive.form.PDDefaultAppearanceString.processOperator(PDDefaultAppearanceString.java:133)
    at org.apache.pdfbox.pdmodel.interactive.form.PDDefaultAppearanceString.processAppearanceStringOperators(PDDefaultAppearanceString.java:105)
    at org.apache.pdfbox.pdmodel.interactive.form.PDDefaultAppearanceString.<init>(PDDefaultAppearanceString.java:87)
    at org.apache.pdfbox.pdmodel.interactive.form.PDVariableText.getDefaultAppearanceString(PDVariableText.java:105)
    at org.apache.pdfbox.pdmodel.interactive.form.AppearanceGeneratorHelper.<init>(AppearanceGeneratorHelper.java:117)
    at org.apache.pdfbox.pdmodel.interactive.form.PDListBox.constructAppearances(PDListBox.java:85)
    at org.apache.pdfbox.pdmodel.interactive.form.PDAcroForm.refreshAppearances(PDAcroForm.java:344)
    at org.apache.pdfbox.pdmodel.fixup.processor.AcroFormGenerateAppearancesProcessor.process(AcroFormGenerateAppearancesProcessor.java:52)
    at org.apache.pdfbox.pdmodel.fixup.AcroFormDefaultFixup.apply(AcroFormDefaultFixup.java:56)
    at org.apache.pdfbox.pdmodel.PDDocumentCatalog.getAcroForm(PDDocumentCatalog.java:132)
    at org.apache.pdfbox.pdmodel.PDDocumentCatalog.getAcroForm(PDDocumentCatalog.java:113)
    at org.apache.pdfbox.multipdf.PDFMergerUtility.mergeAcroForm(PDFMergerUtility.java:1226)
    at org.apache.pdfbox.multipdf.PDFMergerUtility.appendDocument(PDFMergerUtility.java:542)
    at org.apache.pdfbox.multipdf.PDFMergerUtility.legacyMergeDocuments(PDFMergerUtility.java:471)
    at org.apache.pdfbox.multipdf.PDFMergerUtility.mergeDocuments(PDFMergerUtility.java:367)
    at org.apache.camel.component.pdf.PdfProducer.doMerge(PdfProducer.java:99)
    at root method.(Unknown Source)
Error: An object of type 'java.awt.image.DirectColorModel' was found in the image heap. This type, however, is marked for initialization at image run time for the following reason: classes are initialized at run time by default.
This is not allowed for correctness reasons: All objects that are stored in the image heap must be initialized at build time.
You now have two options to resolve this:
1) If it is intended that objects of type 'java.awt.image.DirectColorModel' are persisted in the image heap, add 
    '--initialize-at-build-time=java.awt.image.DirectColorModel'
to the native-image arguments. Note that initializing new types can store additional objects to the heap. It is advised to check the static fields of 'java.awt.image.DirectColorModel' to see if they are safe for build-time initialization,  and that they do not contain any sensitive data that should not become part of the image.
2) If these objects should not be stored in the image heap, you can use 
    '--trace-object-instantiation=java.awt.image.DirectColorModel'
to find classes that instantiate these objects. Once you found such a class, you can mark it explicitly for run time initialization with 
    '--initialize-at-run-time=<culprit>'
to prevent the instantiation of the object.
If you are seeing this message after enabling '--strict-image-heap', this means that some objects ended up in the image heap without their type being marked with --initialize-at-build-time.
To fix this, include '--initialize-at-build-time=java.awt.image.DirectColorModel' in your configuration. If the classes do not originate from your code, it is advised to update all library or framework dependencies to the latest version before addressing this error.
Please address this problem to be prepared for future releases of GraalVM.
The following detailed trace displays from which field in the code the object was reached.
Trace: Object was reached by
  trying to constant fold static field org.apache.pdfbox.rendering.SoftMask.ARGB_COLOR_MODEL
    at org.apache.pdfbox.rendering.SoftMask.access$000(SoftMask.java:48)
  parsing method org.apache.pdfbox.rendering.SoftMask.access$000(SoftMask.java:48) reachable via the parsing context
    at static root method.(Unknown Source)
com.oracle.svm.core.util.UserError$UserException: Unsupported features in 3 methods
Detailed message:
Error: An object of type 'java.awt.color.ICC_ColorSpace' was found in the image heap. This type, however, is marked for initialization at image run time for the following reason: classes are initialized at run time by default.
This is not allowed for correctness reasons: All objects that are stored in the image heap must be initialized at build time.
You now have two options to resolve this:
1) If it is intended that objects of type 'java.awt.color.ICC_ColorSpace' are persisted in the image heap, add 
    '--initialize-at-build-time=java.awt.color.ICC_ColorSpace'
to the native-image arguments. Note that initializing new types can store additional objects to the heap. It is advised to check the static fields of 'java.awt.color.ICC_ColorSpace' to see if they are safe for build-time initialization,  and that they do not contain any sensitive data that should not become part of the image.
2) If these objects should not be stored in the image heap, you can use 
    '--trace-object-instantiation=java.awt.color.ICC_ColorSpace'
to find classes that instantiate these objects. Once you found such a class, you can mark it explicitly for run time initialization with 
    '--initialize-at-run-time=<culprit>'
to prevent the instantiation of the object.
If you are seeing this message after enabling '--strict-image-heap', this means that some objects ended up in the image heap without their type being marked with --initialize-at-build-time.
To fix this, include '--initialize-at-build-time=java.awt.color.ICC_ColorSpace' in your configuration. If the classes do not originate from your code, it is advised to update all library or framework dependencies to the latest version before addressing this error.
Please address this problem to be prepared for future releases of GraalVM.
The following detailed trace displays from which field in the code the object was reached.
Trace: Object was reached by
  trying to constant fold static field org.apache.pdfbox.pdmodel.graphics.color.PDCIEDictionaryBasedColorSpace.CIEXYZ
    at org.apache.pdfbox.pdmodel.graphics.color.PDCIEDictionaryBasedColorSpace.convXYZtoRGB(PDCIEDictionaryBasedColorSpace.java:102)
  parsing method org.apache.pdfbox.pdmodel.graphics.color.PDCIEDictionaryBasedColorSpace.convXYZtoRGB(PDCIEDictionaryBasedColorSpace.java:90) reachable via the parsing context
    at static root method.(Unknown Source)
Error: An object of type 'java.awt.image.ColorConvertOp' was found in the image heap. This type, however, is marked for initialization at image run time for the following reason: classes are initialized at run time by default.
This is not allowed for correctness reasons: All objects that are stored in the image heap must be initialized at build time.
You now have two options to resolve this:
1) If it is intended that objects of type 'java.awt.image.ColorConvertOp' are persisted in the image heap, add 
    '--initialize-at-build-time=java.awt.image.ColorConvertOp'
to the native-image arguments. Note that initializing new types can store additional objects to the heap. It is advised to check the static fields of 'java.awt.image.ColorConvertOp' to see if they are safe for build-time initialization,  and that they do not contain any sensitive data that should not become part of the image.
2) If these objects should not be stored in the image heap, you can use 
    '--trace-object-instantiation=java.awt.image.ColorConvertOp'
to find classes that instantiate these objects. Once you found such a class, you can mark it explicitly for run time initialization with 
    '--initialize-at-run-time=<culprit>'
to prevent the instantiation of the object.
If you are seeing this message after enabling '--strict-image-heap', this means that some objects ended up in the image heap without their type being marked with --initialize-at-build-time.
To fix this, include '--initialize-at-build-time=java.awt.image.ColorConvertOp' in your configuration. If the classes do not originate from your code, it is advised to update all library or framework dependencies to the latest version before addressing this error.
Please address this problem to be prepared for future releases of GraalVM.
The following detailed trace displays from which field in the code the object was reached.
Trace: Object was reached by
  reading field org.apache.pdfbox.pdmodel.graphics.color.PDColorSpace.colorConvertOp of constant 
    org.apache.pdfbox.pdmodel.graphics.color.PDDeviceCMYK@47c593d9: DeviceCMYK
  reading static field org.apache.pdfbox.pdmodel.graphics.color.PDDeviceCMYK.INSTANCE
    at org.apache.pdfbox.pdmodel.interactive.form.PDDefaultAppearanceString.processSetFontColor(PDDefaultAppearanceString.java:199)
  parsing method org.apache.pdfbox.pdmodel.interactive.form.PDDefaultAppearanceString.processSetFontColor(PDDefaultAppearanceString.java:190) reachable via the parsing context
    at org.apache.pdfbox.pdmodel.interactive.form.PDDefaultAppearanceString.processOperator(PDDefaultAppearanceString.java:133)
    at org.apache.pdfbox.pdmodel.interactive.form.PDDefaultAppearanceString.processAppearanceStringOperators(PDDefaultAppearanceString.java:105)
    at org.apache.pdfbox.pdmodel.interactive.form.PDDefaultAppearanceString.<init>(PDDefaultAppearanceString.java:87)
    at org.apache.pdfbox.pdmodel.interactive.form.PDVariableText.getDefaultAppearanceString(PDVariableText.java:105)
    at org.apache.pdfbox.pdmodel.interactive.form.AppearanceGeneratorHelper.<init>(AppearanceGeneratorHelper.java:117)
    at org.apache.pdfbox.pdmodel.interactive.form.PDListBox.constructAppearances(PDListBox.java:85)
    at org.apache.pdfbox.pdmodel.interactive.form.PDAcroForm.refreshAppearances(PDAcroForm.java:344)
    at org.apache.pdfbox.pdmodel.fixup.processor.AcroFormGenerateAppearancesProcessor.process(AcroFormGenerateAppearancesProcessor.java:52)
    at org.apache.pdfbox.pdmodel.fixup.AcroFormDefaultFixup.apply(AcroFormDefaultFixup.java:56)
    at org.apache.pdfbox.pdmodel.PDDocumentCatalog.getAcroForm(PDDocumentCatalog.java:132)
    at org.apache.pdfbox.pdmodel.PDDocumentCatalog.getAcroForm(PDDocumentCatalog.java:113)
    at org.apache.pdfbox.multipdf.PDFMergerUtility.mergeAcroForm(PDFMergerUtility.java:1226)
    at org.apache.pdfbox.multipdf.PDFMergerUtility.appendDocument(PDFMergerUtility.java:542)
    at org.apache.pdfbox.multipdf.PDFMergerUtility.legacyMergeDocuments(PDFMergerUtility.java:471)
    at org.apache.pdfbox.multipdf.PDFMergerUtility.mergeDocuments(PDFMergerUtility.java:367)
    at org.apache.camel.component.pdf.PdfProducer.doMerge(PdfProducer.java:99)
    at root method.(Unknown Source)
Error: An object of type 'java.awt.image.DirectColorModel' was found in the image heap. This type, however, is marked for initialization at image run time for the following reason: classes are initialized at run time by default.
This is not allowed for correctness reasons: All objects that are stored in the image heap must be initialized at build time.
You now have two options to resolve this:
1) If it is intended that objects of type 'java.awt.image.DirectColorModel' are persisted in the image heap, add 
    '--initialize-at-build-time=java.awt.image.DirectColorModel'
to the native-image arguments. Note that initializing new types can store additional objects to the heap. It is advised to check the static fields of 'java.awt.image.DirectColorModel' to see if they are safe for build-time initialization,  and that they do not contain any sensitive data that should not become part of the image.
2) If these objects should not be stored in the image heap, you can use 
    '--trace-object-instantiation=java.awt.image.DirectColorModel'
to find classes that instantiate these objects. Once you found such a class, you can mark it explicitly for run time initialization with 
    '--initialize-at-run-time=<culprit>'
to prevent the instantiation of the object.
If you are seeing this message after enabling '--strict-image-heap', this means that some objects ended up in the image heap without their type being marked with --initialize-at-build-time.
To fix this, include '--initialize-at-build-time=java.awt.image.DirectColorModel' in your configuration. If the classes do not originate from your code, it is advised to update all library or framework dependencies to the latest version before addressing this error.
Please address this problem to be prepared for future releases of GraalVM.
The following detailed trace displays from which field in the code the object was reached.
Trace: Object was reached by
  trying to constant fold static field org.apache.pdfbox.rendering.SoftMask.ARGB_COLOR_MODEL
    at org.apache.pdfbox.rendering.SoftMask.access$000(SoftMask.java:48)
  parsing method org.apache.pdfbox.rendering.SoftMask.access$000(SoftMask.java:48) reachable via the parsing context
    at static root method.(Unknown Source)
	at org.graalvm.nativeimage.builder/com.oracle.svm.core.util.UserError.abort(UserError.java:85)
	at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.FallbackFeature.reportAsFallback(FallbackFeature.java:248)
	at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGenerator.runPointsToAnalysis(NativeImageGenerator.java:814)
	at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGenerator.doRun(NativeImageGenerator.java:592)
	at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGenerator.run(NativeImageGenerator.java:550)
	at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.buildImage(NativeImageGeneratorRunner.java:539)
	at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.build(NativeImageGeneratorRunner.java:721)
	at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.start(NativeImageGeneratorRunner.java:143)
	at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.main(NativeImageGeneratorRunner.java:98)
Caused by: com.oracle.graal.pointsto.constraints.UnsupportedFeatureException: Unsupported features in 3 methods
Detailed message:
Error: An object of type 'java.awt.color.ICC_ColorSpace' was found in the image heap. This type, however, is marked for initialization at image run time for the following reason: classes are initialized at run time by default.
This is not allowed for correctness reasons: All objects that are stored in the image heap must be initialized at build time.
You now have two options to resolve this:
1) If it is intended that objects of type 'java.awt.color.ICC_ColorSpace' are persisted in the image heap, add 
    '--initialize-at-build-time=java.awt.color.ICC_ColorSpace'
to the native-image arguments. Note that initializing new types can store additional objects to the heap. It is advised to check the static fields of 'java.awt.color.ICC_ColorSpace' to see if they are safe for build-time initialization,  and that they do not contain any sensitive data that should not become part of the image.
2) If these objects should not be stored in the image heap, you can use 
    '--trace-object-instantiation=java.awt.color.ICC_ColorSpace'
to find classes that instantiate these objects. Once you found such a class, you can mark it explicitly for run time initialization with 
    '--initialize-at-run-time=<culprit>'
to prevent the instantiation of the object.
If you are seeing this message after enabling '--strict-image-heap', this means that some objects ended up in the image heap without their type being marked with --initialize-at-build-time.
To fix this, include '--initialize-at-build-time=java.awt.color.ICC_ColorSpace' in your configuration. If the classes do not originate from your code, it is advised to update all library or framework dependencies to the latest version before addressing this error.
Please address this problem to be prepared for future releases of GraalVM.
The following detailed trace displays from which field in the code the object was reached.
Trace: Object was reached by
  trying to constant fold static field org.apache.pdfbox.pdmodel.graphics.color.PDCIEDictionaryBasedColorSpace.CIEXYZ
    at org.apache.pdfbox.pdmodel.graphics.color.PDCIEDictionaryBasedColorSpace.convXYZtoRGB(PDCIEDictionaryBasedColorSpace.java:102)
  parsing method org.apache.pdfbox.pdmodel.graphics.color.PDCIEDictionaryBasedColorSpace.convXYZtoRGB(PDCIEDictionaryBasedColorSpace.java:90) reachable via the parsing context
    at static root method.(Unknown Source)
Error: An object of type 'java.awt.image.ColorConvertOp' was found in the image heap. This type, however, is marked for initialization at image run time for the following reason: classes are initialized at run time by default.
This is not allowed for correctness reasons: All objects that are stored in the image heap must be initialized at build time.
You now have two options to resolve this:
1) If it is intended that objects of type 'java.awt.image.ColorConvertOp' are persisted in the image heap, add 
    '--initialize-at-build-time=java.awt.image.ColorConvertOp'
to the native-image arguments. Note that initializing new types can store additional objects to the heap. It is advised to check the static fields of 'java.awt.image.ColorConvertOp' to see if they are safe for build-time initialization,  and that they do not contain any sensitive data that should not become part of the image.
2) If these objects should not be stored in the image heap, you can use 
    '--trace-object-instantiation=java.awt.image.ColorConvertOp'
to find classes that instantiate these objects. Once you found such a class, you can mark it explicitly for run time initialization with 
    '--initialize-at-run-time=<culprit>'
to prevent the instantiation of the object.
If you are seeing this message after enabling '--strict-image-heap', this means that some objects ended up in the image heap without their type being marked with --initialize-at-build-time.
To fix this, include '--initialize-at-build-time=java.awt.image.ColorConvertOp' in your configuration. If the classes do not originate from your code, it is advised to update all library or framework dependencies to the latest version before addressing this error.
Please address this problem to be prepared for future releases of GraalVM.
The following detailed trace displays from which field in the code the object was reached.
Trace: Object was reached by
  reading field org.apache.pdfbox.pdmodel.graphics.color.PDColorSpace.colorConvertOp of constant 
    org.apache.pdfbox.pdmodel.graphics.color.PDDeviceCMYK@47c593d9: DeviceCMYK
  reading static field org.apache.pdfbox.pdmodel.graphics.color.PDDeviceCMYK.INSTANCE
    at org.apache.pdfbox.pdmodel.interactive.form.PDDefaultAppearanceString.processSetFontColor(PDDefaultAppearanceString.java:199)
  parsing method org.apache.pdfbox.pdmodel.interactive.form.PDDefaultAppearanceString.processSetFontColor(PDDefaultAppearanceString.java:190) reachable via the parsing context
    at org.apache.pdfbox.pdmodel.interactive.form.PDDefaultAppearanceString.processOperator(PDDefaultAppearanceString.java:133)
    at org.apache.pdfbox.pdmodel.interactive.form.PDDefaultAppearanceString.processAppearanceStringOperators(PDDefaultAppearanceString.java:105)
    at org.apache.pdfbox.pdmodel.interactive.form.PDDefaultAppearanceString.<init>(PDDefaultAppearanceString.java:87)
    at org.apache.pdfbox.pdmodel.interactive.form.PDVariableText.getDefaultAppearanceString(PDVariableText.java:105)
    at org.apache.pdfbox.pdmodel.interactive.form.AppearanceGeneratorHelper.<init>(AppearanceGeneratorHelper.java:117)
    at org.apache.pdfbox.pdmodel.interactive.form.PDListBox.constructAppearances(PDListBox.java:85)
    at org.apache.pdfbox.pdmodel.interactive.form.PDAcroForm.refreshAppearances(PDAcroForm.java:344)
    at org.apache.pdfbox.pdmodel.fixup.processor.AcroFormGenerateAppearancesProcessor.process(AcroFormGenerateAppearancesProcessor.java:52)
    at org.apache.pdfbox.pdmodel.fixup.AcroFormDefaultFixup.apply(AcroFormDefaultFixup.java:56)
    at org.apache.pdfbox.pdmodel.PDDocumentCatalog.getAcroForm(PDDocumentCatalog.java:132)
    at org.apache.pdfbox.pdmodel.PDDocumentCatalog.getAcroForm(PDDocumentCatalog.java:113)
    at org.apache.pdfbox.multipdf.PDFMergerUtility.mergeAcroForm(PDFMergerUtility.java:1226)
    at org.apache.pdfbox.multipdf.PDFMergerUtility.appendDocument(PDFMergerUtility.java:542)
    at org.apache.pdfbox.multipdf.PDFMergerUtility.legacyMergeDocuments(PDFMergerUtility.java:471)
    at org.apache.pdfbox.multipdf.PDFMergerUtility.mergeDocuments(PDFMergerUtility.java:367)
    at org.apache.camel.component.pdf.PdfProducer.doMerge(PdfProducer.java:99)
    at root method.(Unknown Source)
Error: An object of type 'java.awt.image.DirectColorModel' was found in the image heap. This type, however, is marked for initialization at image run time for the following reason: classes are initialized at run time by default.
This is not allowed for correctness reasons: All objects that are stored in the image heap must be initialized at build time.
You now have two options to resolve this:
1) If it is intended that objects of type 'java.awt.image.DirectColorModel' are persisted in the image heap, add 
    '--initialize-at-build-time=java.awt.image.DirectColorModel'
to the native-image arguments. Note that initializing new types can store additional objects to the heap. It is advised to check the static fields of 'java.awt.image.DirectColorModel' to see if they are safe for build-time initialization,  and that they do not contain any sensitive data that should not become part of the image.
2) If these objects should not be stored in the image heap, you can use 
    '--trace-object-instantiation=java.awt.image.DirectColorModel'
to find classes that instantiate these objects. Once you found such a class, you can mark it explicitly for run time initialization with 
    '--initialize-at-run-time=<culprit>'
to prevent the instantiation of the object.
If you are seeing this message after enabling '--strict-image-heap', this means that some objects ended up in the image heap without their type being marked with --initialize-at-build-time.
To fix this, include '--initialize-at-build-time=java.awt.image.DirectColorModel' in your configuration. If the classes do not originate from your code, it is advised to update all library or framework dependencies to the latest version before addressing this error.
Please address this problem to be prepared for future releases of GraalVM.
The following detailed trace displays from which field in the code the object was reached.
Trace: Object was reached by
  trying to constant fold static field org.apache.pdfbox.rendering.SoftMask.ARGB_COLOR_MODEL
    at org.apache.pdfbox.rendering.SoftMask.access$000(SoftMask.java:48)
  parsing method org.apache.pdfbox.rendering.SoftMask.access$000(SoftMask.java:48) reachable via the parsing context
    at static root method.(Unknown Source)
	at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.constraints.UnsupportedFeatures.report(UnsupportedFeatures.java:129)
	at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGenerator.runPointsToAnalysis(NativeImageGenerator.java:809)
	... 6 more

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions