Giter Club home page Giter Club logo

quarkus-tika's Introduction

Quarkus - Tika

All Contributors

Version GitHub Workflow Status

Introduction

This Quarkus extension allows you to parse documents using the Apache Tika library.

It is a replacement for the quarkus-tika extension originally part of the Quarkus core distribution.

Documentation

The documentation for this extension can be found here.

Contributors ✨

Thanks goes to these wonderful people (emoji key):

sberyozkin
sberyozkin

💻 🚧
James Netherton
James Netherton

💻
George Gastaldi
George Gastaldi

💻 🚧
Tomaž
Tomaž

💻 🚧
Melloware
Melloware

📖 💻
Zheng Feng
Zheng Feng

💻 🚧
Gerhard Flothow
Gerhard Flothow

📖
Ivan Milosavljević
Ivan Milosavljević

📖
Foivos
Foivos

💻

This project follows the all-contributors specification. Contributions of any kind welcome!

quarkus-tika's People

Contributors

actions-user avatar allcontributors[bot] avatar aloubyansky avatar dependabot[bot] avatar dmlloyd avatar famod avatar galderz avatar gastaldi avatar gsmet avatar gwenneg avatar ia3andy avatar jamesnetherton avatar luccaprado avatar machi1990 avatar maxandersen avatar melloware avatar michalszynkiewicz avatar mkouba avatar phillip-kruger avatar ppalaga avatar rquinio avatar rsvoboda avatar sanne avatar sberyozkin avatar slyngdk avatar stuartwdouglas avatar thejavaguy avatar tpodg avatar zakkak avatar zhfeng avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

quarkus-tika's Issues

Upgrade to Quarkus 3.0.0

It would be nice to check that everything works with Quarkus 3.0.0 and eventually release an early Alpha so that we can also test with it in Camel Quarkus.
It would be good to finish Tika 2.x migration first #22

Update Tika to 1.28.1

Hi,

Currently used Tika version contains multiple vulnerabilities in its dependencies (e.g. unrar, jdom) which are fixed in Tika 1.28.1. Are you planning for updating this?

Thanks
Dirk

`UnsupportedFeatureException: An object of type 'org.apache.pdfbox.rendering.ImageType$2' was found in the image heap`

Native image build fails with

Caused by: com.oracle.graal.pointsto.constraints.UnsupportedFeatureException: An object of type 'org.apache.pdfbox.rendering.ImageType$2' 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.

More info: https://github.com/quarkiverse/quarkus-tika/actions/runs/6794028039/job/18469822743

Failed to create an XPathFactory during getMetadata

I'd like to report a runtime error that I'm seeing in a microservice after trying to migrate to Quarkus 3.0.3 and Tika 2.0.0.

I have been able to recreate the issue using the same file but a new Quarkus project created by the Quarkus CLI. I don't use any custom configurations or business logic. All I need to do is create a project that uses the quarkus-tika and quarkus-container-image-jib extensions which tries to grab the metadata of files like so:

parser.getMetadata(inputStream, "application/pdf")

When running the project on my host machine (either through the test runner or dev mode) the code runs as expected and I'm able to scrape the metadata of whatever documents I can throw at it. However if I take the same code, build it into a container image using JIB, and run that I then encounter an error for a specific input file. I'd like to share the exact file that causes the issue, but it is generated by a third-party and may have test environment data I'd rather not risk sharing. I hope the stack trace is enough to begin troubleshooting, if not let me know and I'll see if I can find any public documents that cause the same crash.

I was hoping to include a fully reproducible project as a part of this issue but since it seems contingent on a potentially sensitive input file this was the best I could think of to start this discussion. Please let me know if I'm missing any important clues and I'll try to help out.

Exception in thread "main" java.lang.reflect.InvocationTargetException
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:568)
        at io.quarkus.bootstrap.runner.QuarkusEntryPoint.doRun(QuarkusEntryPoint.java:61)
        at io.quarkus.bootstrap.runner.QuarkusEntryPoint.main(QuarkusEntryPoint.java:32)
Caused by: java.lang.ExceptionInInitializerError
        at org.apache.pdfbox.filter.FilterFactory.<init>(FilterFactory.java:42)
        at org.apache.pdfbox.filter.FilterFactory.<clinit>(FilterFactory.java:35)
        at org.apache.pdfbox.cos.COSStream.getFilterList(COSStream.java:304)
        at org.apache.pdfbox.cos.COSStream.createInputStream(COSStream.java:175)
        at org.apache.pdfbox.cos.COSStream.createInputStream(COSStream.java:163)
        at org.apache.pdfbox.pdfparser.PDFXrefStreamParser.<init>(PDFXrefStreamParser.java:56)
        at org.apache.pdfbox.pdfparser.COSParser.parseXrefStream(COSParser.java:2865)
        at org.apache.pdfbox.pdfparser.COSParser.parseXrefObjStream(COSParser.java:435)
        at org.apache.pdfbox.pdfparser.COSParser.parseXref(COSParser.java:386)
        at org.apache.pdfbox.pdfparser.COSParser.retrieveTrailer(COSParser.java:255)
        at org.apache.pdfbox.pdfparser.PDFParser.initialParse(PDFParser.java:173)
        at org.apache.pdfbox.pdfparser.PDFParser.parse(PDFParser.java:226)
        at org.apache.pdfbox.pdmodel.PDDocument.load(PDDocument.java:1232)
        at org.apache.pdfbox.pdmodel.PDDocument.load(PDDocument.java:1206)
        at org.apache.tika.parser.pdf.PDFParser.getPDDocument(PDFParser.java:317)
        at org.apache.tika.parser.pdf.PDFParser.parse(PDFParser.java:172)
        at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:298)
        at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:298)
        at org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:195)
        at io.quarkus.tika.TikaParser.parseStream(TikaParser.java:85)
        at io.quarkus.tika.TikaParser.getMetadata(TikaParser.java:68)
        at org.acme.GreetingCommand.run(GreetingCommand.java:47)
        at picocli.CommandLine.executeUserObject(CommandLine.java:2026)
        at picocli.CommandLine.access$1500(CommandLine.java:148)
        at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2461)
        at picocli.CommandLine$RunLast.handle(CommandLine.java:2453)
        at picocli.CommandLine$RunLast.handle(CommandLine.java:2415)
        at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2273)
        at picocli.CommandLine$RunLast.execute(CommandLine.java:2417)
        at io.quarkus.picocli.runtime.PicocliRunner$EventExecutionStrategy.execute(PicocliRunner.java:26)
        at picocli.CommandLine.execute(CommandLine.java:2170)
        at io.quarkus.picocli.runtime.PicocliRunner.run(PicocliRunner.java:40)
        at io.quarkus.runtime.ApplicationLifecycleManager.run(ApplicationLifecycleManager.java:132)
        at io.quarkus.runtime.Quarkus.run(Quarkus.java:71)
        at io.quarkus.runtime.Quarkus.run(Quarkus.java:44)
        at io.quarkus.runner.GeneratedMain.main(Unknown Source)
        ... 6 more
Caused by: java.lang.RuntimeException: XPathFactory#newInstance() failed to create an XPathFactory for the default object model: http://java.sun.com/jaxp/xpath/dom with the XPathFactoryConfigurationException: javax.xml.xpath.XPathFactoryConfigurationException: No XPathFctory implementation found for the object model: http://java.sun.com/jaxp/xpath/dom
        at javax.xml.xpath.XPathFactory.newInstance(Unknown Source)
        at org.apache.pdfbox.filter.DCTFilter.<clinit>(DCTFilter.java:63)
        ... 42 more

Dependency issue on Quarkus 3.5.x

Hi there,

Following up on quarkusio/quarkus#36974

I have added the Apache Tika extension to my Quarkus project. Also I am using optimaize and tika-serialization.

dependencies {
    implementation("io.quarkiverse.tika:quarkus-tika:2.0.3")
...
    implementation("org.apache.tika:tika-langdetect-optimaize:2.8.0")
    implementation("org.apache.tika:tika-serialization:2.8.0")

Please note first that I used 2.8.0, because (although package should use 2.9.1) the extension uses tika 2.8.0. When upgrading to Quarkus 3.5.x the following code does not run anymore

fun parseFile(file: File): FileParserResult {

        val config = TesseractOCRConfig()
        config.isSkipOcr = true
        val context = ParseContext()
        context.set(TesseractOCRConfig::class.java, config)

        val stream = FileInputStream(file)
        val parser = AutoDetectParser()
        val handler = BodyContentHandler(-1)
        val metadata = Metadata()

        parser.parse(stream, handler, metadata, context)
...

It fails with

Test FileParserTest#Reading content from pdf file works() failed 
: java.lang.NoSuchMethodError: 'org.apache.fontbox.ttf.TrueTypeFont org.apache.fontbox.ttf.TTFParser.parse(java.io.InputStream)'
        at org.apache.pdfbox.pdmodel.font.FontMapperImpl.<init>(FontMapperImpl.java:130)
        at org.apache.pdfbox.pdmodel.font.FontMappers$DefaultFontMapper.<clinit>(FontMappers.java:36)
        at org.apache.pdfbox.pdmodel.font.FontMappers.instance(FontMappers.java:46)
        at org.apache.pdfbox.pdmodel.font.PDTrueTypeFont.<init>(PDTrueTypeFont.java:217)
        at org.apache.pdfbox.pdmodel.font.PDFontFactory.createFont(PDFontFactory.java:89)
        at org.apache.pdfbox.pdmodel.PDResources.getFont(PDResources.java:171)
        at org.apache.pdfbox.contentstream.operator.text.SetFontAndSize.process(SetFontAndSize.java:66)
        at org.apache.pdfbox.contentstream.PDFStreamEngine.processOperator(PDFStreamEngine.java:966)
        at org.apache.pdfbox.contentstream.PDFStreamEngine.processStreamOperators(PDFStreamEngine.java:541)
        at org.apache.pdfbox.contentstream.PDFStreamEngine.processStream(PDFStreamEngine.java:516)
        at org.apache.pdfbox.contentstream.PDFStreamEngine.processPage(PDFStreamEngine.java:155)
        at org.apache.pdfbox.text.LegacyPDFStreamEngine.processPage(LegacyPDFStreamEngine.java:155)
        at org.apache.pdfbox.text.PDFTextStripper.processPage(PDFTextStripper.java:363)
        at org.apache.tika.parser.pdf.PDF2XHTML.processPage(PDF2XHTML.java:137)
        at org.apache.tika.parser.pdf.AbstractPDF2XHTML.processPages(AbstractPDF2XHTML.java:1370)
        at org.apache.pdfbox.text.PDFTextStripper.writeText(PDFTextStripper.java:238)
        at org.apache.tika.parser.pdf.PDF2XHTML.process(PDF2XHTML.java:108)
        at org.apache.tika.parser.pdf.PDFParser.parse(PDFParser.java:212)
        at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:298)
        at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:298)
        at org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:199)
        at com.thiswatch.watch.backend.baryl.domain.model.fileparser.FileParser.parseFile(FileParser.kt:29)

Thanks for any advice.

Quarkus Tika Native Image Build Error

When I tried Quarkus Tika with "https://code.quarkus.io/d?e=awt&e=io.quarkiverse.tika%3Aquarkus-tika&cn=code.quarkus.io", i didn't get any error while building as native image.

But when I added a code block to use Tika parser and not typing any parser, it gave the following error.

quarkus.tika.parsers=pdf

Fatal error: org.graalvm.compiler.debug.GraalError: com.oracle.graal.pointsto.constraints.UnsupportedFeatureException: Detected a started Thread in the image heap. Threads running in the image generator are no longer running at image runtime. To see how this object got instantiated use --trace-object-instantiation=org.apache.sis.internal.system.DelayedExecutor.

To reproduce it add the folowing dependency and code block.

    <dependency>
      <groupId>io.quarkus</groupId>
      <artifactId>quarkus-resteasy-reactive</artifactId>
    </dependency>
@Path("/parse")
public class TikaParserResource {
    private static final Logger log = Logger.getLogger(TikaParserResource.class);

    @Inject
    TikaParser parser;

    @POST
    @Path("/text")
    @Produces(MediaType.TEXT_PLAIN)
    public String extractText(InputStream stream) {
        Instant start = Instant.now();
        String text = "empty";
        try {
            text = parser.getText(stream);
        } catch (Exception e) {
            log.info("error" + e);
            text = "error";
        }
        Instant finish = Instant.now();
        log.info(Duration.between(start, finish).toMillis() + " mls have passed");
        return text;
    }
}

As a solution, i gave the package as initilize-at-run-time parameter but after that it continued to give error

quarkus.native.additional-build-args=--initialize-at-run-time=org.apache.sis.internal.system,ucar.nc2.grib.grib2

Error: com.oracle.graal.pointsto.constraints.UnresolvedElementException: Discovered unresolved method during parsing: ucar.nc2.grib.grib2.Grib2JpegDecoder.<init>(int, boolean). This error is reported at image build time because class ucar.nc2.grib.grib2.Grib2DataReader2 is registered for linking at image build time by command line
Detailed message:
Trace: 
        at parsing ucar.nc2.grib.grib2.Grib2DataReader2.getData40(Grib2DataReader2.java:727)
Call path from entry point to ucar.nc2.grib.grib2.Grib2DataReader2.getData40(RandomAccessFile, Grib2Drs$Type40): 
        at ucar.nc2.grib.grib2.Grib2DataReader2.getData40(Grib2DataReader2.java:716)
        at ucar.nc2.grib.grib2.Grib2DataReader2.getData(Grib2DataReader2.java:109)
        at ucar.nc2.grib.grib2.Grib2Record.readData(Grib2Record.java:321)
        at ucar.nc2.grib.collection.Grib2Iosp.readData(Grib2Iosp.java:405)
        at ucar.nc2.grib.collection.GribIosp$DataReader.read(GribIosp.java:940)
        at ucar.nc2.grib.collection.GribIosp.readDataFromCollection(GribIosp.java:860)
        at ucar.nc2.grib.collection.GribIosp.readData(GribIosp.java:810)
        at ucar.nc2.NetcdfFile.readData(NetcdfFile.java:1986)
        at ucar.nc2.Variable.reallyRead(Variable.java:860)
        at ucar.nc2.Variable._read(Variable.java:831)
        at ucar.nc2.Variable.read(Variable.java:709)
        at ucar.nc2.NCdumpW.printVariableData(NCdumpW.java:386)
        at ucar.nc2.dt.grid.GridCoordSys.showCoords(GridCoordSys.java:1405)
        at ucar.nc2.dt.grid.GridCoordSys.show(GridCoordSys.java:1355)
        at ucar.nc2.dt.grid.GridCoordSys.toString(GridCoordSys.java:1345)
        at sun.java2d.loops.GraphicsPrimitive.simplename(GraphicsPrimitive.java:599)
        at com.oracle.svm.jni.JNIJavaCallWrappers.jniInvoke_ARRAY_GraphicsPrimitive_simplename_202a3eedb200439fc8661f318bfce7d323ea7603(generated:0)

Error building native image

Good day to you, when building a native image, an error occurs, the stack trace is below, it most likely occurs due to the call to getMetadata(InputStream stream) in TikaParser

Version info: 'GraalVM 22.0.0.2 Java 17 CE'
Package io.quarkiverse.tika:quarkus-tika:1.0.3

Error: Unsupported features in 4 methods
Detailed message:
Error: Class initialization of ucar.nc2.grib.grib2.Grib2JpegDecoder failed. Use the option --initialize-at-run-time=ucar.nc2.grib.grib2.Grib2JpegDecoder to explicitly request delayed initialization of this class.
Original exception that caused the problem: java.lang.NoClassDefFoundError: jj2000/j2k/util/StringFormatException
        at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized0(Native Method)
        at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized(Unsafe.java:1155)
        at jdk.unsupported/sun.misc.Unsafe.ensureClassInitialized(Unsafe.java:743)
        at jdk.internal.vm.compiler/org.graalvm.compiler.serviceprovider.GraalUnsafeAccess.ensureClassInitialized(GraalUnsafeAccess.java:78)
        at com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.ensureClassInitialized(ConfigurableClassInitialization.java:178)
        at com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.computeInitKindAndMaybeInitializeClass(ConfigurableClassInitialization.java:648)
        at com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.computeInitKindAndMaybeInitializeClass(ConfigurableClassInitialization.java:131)
        at com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.shouldInitializeAtRuntime(ConfigurableClassInitialization.java:159)
        at com.oracle.svm.hosted.SVMHost.isInitialized(SVMHost.java:304)
        at com.oracle.graal.pointsto.meta.AnalysisType.isInitialized(AnalysisType.java:729)
        at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.maybeEagerlyInitialize(BytecodeParser.java:4449)
        at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.genNewInstance(BytecodeParser.java:4647)
        at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.genNewInstance(BytecodeParser.java:4636)
        at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.genNewInstance(BytecodeParser.java:4631)
        at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.processBytecode(BytecodeParser.java:5412)
        at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.iterateBytecodesForBlock(BytecodeParser.java:3513)
        at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.handleBytecodeBlock(BytecodeParser.java:3473)
        at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.processBlock(BytecodeParser.java:3318)
        at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.build(BytecodeParser.java:1149)
        at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.buildRootMethod(BytecodeParser.java:1041)
        at jdk.internal.vm.compiler/org.graalvm.compiler.java.GraphBuilderPhase$Instance.run(GraphBuilderPhase.java:84)
        at com.oracle.svm.hosted.phases.SharedGraphBuilderPhase.run(SharedGraphBuilderPhase.java:80)
        at jdk.internal.vm.compiler/org.graalvm.compiler.phases.Phase.run(Phase.java:49)
        at jdk.internal.vm.compiler/org.graalvm.compiler.phases.BasePhase.apply(BasePhase.java:214)
        at jdk.internal.vm.compiler/org.graalvm.compiler.phases.Phase.apply(Phase.java:42)
        at jdk.internal.vm.compiler/org.graalvm.compiler.phases.Phase.apply(Phase.java:38)
        at com.oracle.graal.pointsto.flow.AnalysisParsedGraph.parseBytecode(AnalysisParsedGraph.java:132)
        at com.oracle.graal.pointsto.meta.AnalysisMethod.ensureGraphParsed(AnalysisMethod.java:556)
        at com.oracle.graal.pointsto.flow.MethodTypeFlowBuilder.parse(MethodTypeFlowBuilder.java:167)
        at com.oracle.graal.pointsto.flow.MethodTypeFlowBuilder.apply(MethodTypeFlowBuilder.java:358)
        at com.oracle.graal.pointsto.flow.MethodTypeFlow.createTypeFlow(MethodTypeFlow.java:297)
        at com.oracle.graal.pointsto.flow.MethodTypeFlow.ensureTypeFlowCreated(MethodTypeFlow.java:286)
        at com.oracle.graal.pointsto.flow.MethodTypeFlow.addContext(MethodTypeFlow.java:107)
        at com.oracle.graal.pointsto.DefaultAnalysisPolicy$DefaultVirtualInvokeTypeFlow.onObservedUpdate(DefaultAnalysisPolicy.java:223)
        at com.oracle.graal.pointsto.flow.TypeFlow.notifyObservers(TypeFlow.java:487)
        at com.oracle.graal.pointsto.flow.TypeFlow.update(TypeFlow.java:556)
        at com.oracle.graal.pointsto.PointsToAnalysis$2.run(PointsToAnalysis.java:598)
        at com.oracle.graal.pointsto.util.CompletionExecutor.executeCommand(CompletionExecutor.java:195)
        at com.oracle.graal.pointsto.util.CompletionExecutor.lambda$executeService$0(CompletionExecutor.java:179)
        at java.base/java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1395)
        at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373)
        at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182)
        at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655)
        at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622)
        at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165)
Caused by: java.lang.ClassNotFoundException: jj2000.j2k.util.StringFormatException
        at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:445)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:587)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
        ... 45 more
Error: Detected a started Thread in the image heap. Threads running in the image generator are no longer running at image runtime.  To see how this object got instantiated use --trace-object-instantiation=org.apache.sis.internal.system.DelayedExecutor. The object was probably created by a class initializer and is reachable from a static field. You can request class initialization at image runtime by using the option --initialize-at-run-time=<class-name>. Or you can write your own initialization methods and call them explicitly from your main entry point.
Trace: Object was reached by 
        reading field java.util.concurrent.locks.AbstractQueuedSynchronizer$Node.waiter of
                constant java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode@319b6d92 reached by 
        reading field java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.firstWaiter of
                constant java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@3d79b181 reached by 
        reading field java.util.concurrent.DelayQueue.available of
                constant java.util.concurrent.DelayQueue@86b0745 reached by 
        scanning method org.apache.sis.internal.system.DelayedExecutor.schedule(DelayedExecutor.java:71)
------------------------------------------------------------------------------------------------------------------------
                        3.2s (6.0% of total time) in 38 GCs | Peak RSS: 7.22GB | CPU load: 9.66
------------------------------------------------------------------------------------------------------------------------
Produced artifacts:

========================================================================================================================
Failed generating 'SNAPSHOT-runner' after 51.9s.
Call path from entry point to org.apache.sis.internal.system.DelayedExecutor.schedule(DelayedRunnable): 
        at org.apache.sis.internal.system.DelayedExecutor.schedule(DelayedExecutor.java:71)
        at org.apache.sis.metadata.sql.MetadataSource.closeExpired(MetadataSource.java:1185)
        at org.apache.sis.metadata.sql.MetadataSource$CloseTask.run(MetadataSource.java:1154)
        at java.lang.Thread.run(Thread.java:833)
        at com.oracle.svm.core.thread.JavaThreads.threadStartRoutine(JavaThreads.java:597)
        at com.oracle.svm.core.posix.thread.PosixJavaThreads.pthreadStartRoutine(PosixJavaThreads.java:194)
        at com.oracle.svm.core.code.IsolateEnterStub.PosixJavaThreads_pthreadStartRoutine_e1f4a8c0039f8337338252cd8734f63a79b5e3df(generated:0)
Error: Detected a started Thread in the image heap. Threads running in the image generator are no longer running at image runtime.  To see how this object got instantiated use --trace-object-instantiation=org.apache.sis.internal.system.ReferenceQueueConsumer. The object was probably created by a class initializer and is reachable from a static field. You can request class initialization at image runtime by using the option --initialize-at-run-time=<class-name>. Or you can write your own initialization methods and call them explicitly from your main entry point.
Trace: Object was reached by 
        reading field org.apache.sis.internal.system.Threads.lastCreatedDaemon
Error: com.oracle.graal.pointsto.constraints.UnresolvedElementException: Discovered unresolved method during parsing: ucar.nc2.grib.grib2.Grib2JpegDecoder.<init>(int, boolean). To diagnose the issue you can use the --allow-incomplete-classpath option. The missing method is then reported at run time when it is accessed the first time.
Trace: 
        at parsing ucar.nc2.grib.grib2.Grib2DataReader2.getData40(Grib2DataReader2.java:727)
Call path from entry point to ucar.nc2.grib.grib2.Grib2DataReader2.getData40(RandomAccessFile, Grib2Drs$Type40): 
        at ucar.nc2.grib.grib2.Grib2DataReader2.getData40(Grib2DataReader2.java:716)
        at ucar.nc2.grib.grib2.Grib2DataReader2.getData(Grib2DataReader2.java:109)
        at ucar.nc2.grib.grib2.Grib2Record.readData(Grib2Record.java:321)
        at ucar.nc2.grib.collection.Grib2Iosp.readData(Grib2Iosp.java:405)
        at ucar.nc2.grib.collection.GribIosp$DataReader.read(GribIosp.java:940)
        at ucar.nc2.grib.collection.GribIosp.readDataFromCollection(GribIosp.java:860)
        at ucar.nc2.grib.collection.GribIosp.readData(GribIosp.java:810)
        at ucar.nc2.NetcdfFile.readData(NetcdfFile.java:1986)
        at ucar.nc2.Variable.reallyRead(Variable.java:860)
        at ucar.nc2.Variable._read(Variable.java:831)
        at ucar.nc2.Variable.read(Variable.java:709)
        at ucar.nc2.NCdumpW.printVariableData(NCdumpW.java:386)
        at ucar.nc2.dt.grid.GridCoordSys.showCoords(GridCoordSys.java:1405)
        at ucar.nc2.dt.grid.GridCoordSys.show(GridCoordSys.java:1355)
        at ucar.nc2.dt.grid.GridCoordSys.toString(GridCoordSys.java:1345)
        at sun.java2d.loops.GraphicsPrimitive.simplename(GraphicsPrimitive.java:610)
        at com.oracle.svm.jni.JNIJavaCallWrappers.jniInvoke_VA_LIST_GraphicsPrimitive_simplename_202a3eedb200439fc8661f318bfce7d323ea7603(generated:0)

com.oracle.svm.core.util.UserError$UserException: Unsupported features in 4 methods
Detailed message:
Error: Class initialization of ucar.nc2.grib.grib2.Grib2JpegDecoder failed. Use the option --initialize-at-run-time=ucar.nc2.grib.grib2.Grib2JpegDecoder to explicitly request delayed initialization of this class.
Original exception that caused the problem: java.lang.NoClassDefFoundError: jj2000/j2k/util/StringFormatException
        at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized0(Native Method)
        at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized(Unsafe.java:1155)
        at jdk.unsupported/sun.misc.Unsafe.ensureClassInitialized(Unsafe.java:743)
        at jdk.internal.vm.compiler/org.graalvm.compiler.serviceprovider.GraalUnsafeAccess.ensureClassInitialized(GraalUnsafeAccess.java:78)
        at com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.ensureClassInitialized(ConfigurableClassInitialization.java:178)
        at com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.computeInitKindAndMaybeInitializeClass(ConfigurableClassInitialization.java:648)
        at com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.computeInitKindAndMaybeInitializeClass(ConfigurableClassInitialization.java:131)
        at com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.shouldInitializeAtRuntime(ConfigurableClassInitialization.java:159)
        at com.oracle.svm.hosted.SVMHost.isInitialized(SVMHost.java:304)
        at com.oracle.graal.pointsto.meta.AnalysisType.isInitialized(AnalysisType.java:729)
        at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.maybeEagerlyInitialize(BytecodeParser.java:4449)
        at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.genNewInstance(BytecodeParser.java:4647)
        at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.genNewInstance(BytecodeParser.java:4636)
        at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.genNewInstance(BytecodeParser.java:4631)
        at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.processBytecode(BytecodeParser.java:5412)
        at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.iterateBytecodesForBlock(BytecodeParser.java:3513)
        at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.handleBytecodeBlock(BytecodeParser.java:3473)
        at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.processBlock(BytecodeParser.java:3318)
        at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.build(BytecodeParser.java:1149)
        at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.buildRootMethod(BytecodeParser.java:1041)
        at jdk.internal.vm.compiler/org.graalvm.compiler.java.GraphBuilderPhase$Instance.run(GraphBuilderPhase.java:84)
        at com.oracle.svm.hosted.phases.SharedGraphBuilderPhase.run(SharedGraphBuilderPhase.java:80)
        at jdk.internal.vm.compiler/org.graalvm.compiler.phases.Phase.run(Phase.java:49)
        at jdk.internal.vm.compiler/org.graalvm.compiler.phases.BasePhase.apply(BasePhase.java:214)
        at jdk.internal.vm.compiler/org.graalvm.compiler.phases.Phase.apply(Phase.java:42)
        at jdk.internal.vm.compiler/org.graalvm.compiler.phases.Phase.apply(Phase.java:38)
        at com.oracle.graal.pointsto.flow.AnalysisParsedGraph.parseBytecode(AnalysisParsedGraph.java:132)
        at com.oracle.graal.pointsto.meta.AnalysisMethod.ensureGraphParsed(AnalysisMethod.java:556)
        at com.oracle.graal.pointsto.flow.MethodTypeFlowBuilder.parse(MethodTypeFlowBuilder.java:167)
        at com.oracle.graal.pointsto.flow.MethodTypeFlowBuilder.apply(MethodTypeFlowBuilder.java:358)
        at com.oracle.graal.pointsto.flow.MethodTypeFlow.createTypeFlow(MethodTypeFlow.java:297)
        at com.oracle.graal.pointsto.flow.MethodTypeFlow.ensureTypeFlowCreated(MethodTypeFlow.java:286)
        at com.oracle.graal.pointsto.flow.MethodTypeFlow.addContext(MethodTypeFlow.java:107)
        at com.oracle.graal.pointsto.DefaultAnalysisPolicy$DefaultVirtualInvokeTypeFlow.onObservedUpdate(DefaultAnalysisPolicy.java:223)
        at com.oracle.graal.pointsto.flow.TypeFlow.notifyObservers(TypeFlow.java:487)
        at com.oracle.graal.pointsto.flow.TypeFlow.update(TypeFlow.java:556)
        at com.oracle.graal.pointsto.PointsToAnalysis$2.run(PointsToAnalysis.java:598)
        at com.oracle.graal.pointsto.util.CompletionExecutor.executeCommand(CompletionExecutor.java:195)
        at com.oracle.graal.pointsto.util.CompletionExecutor.lambda$executeService$0(CompletionExecutor.java:179)
        at java.base/java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1395)
        at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373)
        at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182)
        at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655)
        at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622)
        at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165)
Caused by: java.lang.ClassNotFoundException: jj2000.j2k.util.StringFormatException
        at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:445)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:587)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
        ... 45 more
Error: Detected a started Thread in the image heap. Threads running in the image generator are no longer running at image runtime.  To see how this object got instantiated use --trace-object-instantiation=org.apache.sis.internal.system.DelayedExecutor. The object was probably created by a class initializer and is reachable from a static field. You can request class initialization at image runtime by using the option --initialize-at-run-time=<class-name>. Or you can write your own initialization methods and call them explicitly from your main entry point.
Trace: Object was reached by 
        reading field java.util.concurrent.locks.AbstractQueuedSynchronizer$Node.waiter of
                constant java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode@319b6d92 reached by 
        reading field java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.firstWaiter of
                constant java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@3d79b181 reached by 
        reading field java.util.concurrent.DelayQueue.available of
                constant java.util.concurrent.DelayQueue@86b0745 reached by 
        scanning method org.apache.sis.internal.system.DelayedExecutor.schedule(DelayedExecutor.java:71)
Call path from entry point to org.apache.sis.internal.system.DelayedExecutor.schedule(DelayedRunnable): 
        at org.apache.sis.internal.system.DelayedExecutor.schedule(DelayedExecutor.java:71)
        at org.apache.sis.metadata.sql.MetadataSource.closeExpired(MetadataSource.java:1185)
        at org.apache.sis.metadata.sql.MetadataSource$CloseTask.run(MetadataSource.java:1154)
        at java.lang.Thread.run(Thread.java:833)
        at com.oracle.svm.core.thread.JavaThreads.threadStartRoutine(JavaThreads.java:597)
        at com.oracle.svm.core.posix.thread.PosixJavaThreads.pthreadStartRoutine(PosixJavaThreads.java:194)
        at com.oracle.svm.core.code.IsolateEnterStub.PosixJavaThreads_pthreadStartRoutine_e1f4a8c0039f8337338252cd8734f63a79b5e3df(generated:0)
Error: Detected a started Thread in the image heap. Threads running in the image generator are no longer running at image runtime.  To see how this object got instantiated use --trace-object-instantiation=org.apache.sis.internal.system.ReferenceQueueConsumer. The object was probably created by a class initializer and is reachable from a static field. You can request class initialization at image runtime by using the option --initialize-at-run-time=<class-name>. Or you can write your own initialization methods and call them explicitly from your main entry point.
Trace: Object was reached by 
        reading field org.apache.sis.internal.system.Threads.lastCreatedDaemon
Error: com.oracle.graal.pointsto.constraints.UnresolvedElementException: Discovered unresolved method during parsing: ucar.nc2.grib.grib2.Grib2JpegDecoder.<init>(int, boolean). To diagnose the issue you can use the --allow-incomplete-classpath option. The missing method is then reported at run time when it is accessed the first time.
Trace: 
        at parsing ucar.nc2.grib.grib2.Grib2DataReader2.getData40(Grib2DataReader2.java:727)
Call path from entry point to ucar.nc2.grib.grib2.Grib2DataReader2.getData40(RandomAccessFile, Grib2Drs$Type40): 
        at ucar.nc2.grib.grib2.Grib2DataReader2.getData40(Grib2DataReader2.java:716)
        at ucar.nc2.grib.grib2.Grib2DataReader2.getData(Grib2DataReader2.java:109)
        at ucar.nc2.grib.grib2.Grib2Record.readData(Grib2Record.java:321)
        at ucar.nc2.grib.collection.Grib2Iosp.readData(Grib2Iosp.java:405)
        at ucar.nc2.grib.collection.GribIosp$DataReader.read(GribIosp.java:940)
        at ucar.nc2.grib.collection.GribIosp.readDataFromCollection(GribIosp.java:860)
        at ucar.nc2.grib.collection.GribIosp.readData(GribIosp.java:810)
        at ucar.nc2.NetcdfFile.readData(NetcdfFile.java:1986)
        at ucar.nc2.Variable.reallyRead(Variable.java:860)
        at ucar.nc2.Variable._read(Variable.java:831)
        at ucar.nc2.Variable.read(Variable.java:709)
        at ucar.nc2.NCdumpW.printVariableData(NCdumpW.java:386)
        at ucar.nc2.dt.grid.GridCoordSys.showCoords(GridCoordSys.java:1405)
        at ucar.nc2.dt.grid.GridCoordSys.show(GridCoordSys.java:1355)
        at ucar.nc2.dt.grid.GridCoordSys.toString(GridCoordSys.java:1345)
        at sun.java2d.loops.GraphicsPrimitive.simplename(GraphicsPrimitive.java:610)
        at com.oracle.svm.jni.JNIJavaCallWrappers.jniInvoke_VA_LIST_GraphicsPrimitive_simplename_202a3eedb200439fc8661f318bfce7d323ea7603(generated:0)

        at com.oracle.svm.core.util.UserError.abort(UserError.java:87)
        at com.oracle.svm.hosted.FallbackFeature.reportAsFallback(FallbackFeature.java:233)
        at com.oracle.svm.hosted.NativeImageGenerator.runPointsToAnalysis(NativeImageGenerator.java:731)
        at com.oracle.svm.hosted.NativeImageGenerator.doRun(NativeImageGenerator.java:537)
        at com.oracle.svm.hosted.NativeImageGenerator.run(NativeImageGenerator.java:494)
        at com.oracle.svm.hosted.NativeImageGeneratorRunner.buildImage(NativeImageGeneratorRunner.java:426)
        at com.oracle.svm.hosted.NativeImageGeneratorRunner.build(NativeImageGeneratorRunner.java:587)
        at com.oracle.svm.hosted.NativeImageGeneratorRunner.main(NativeImageGeneratorRunner.java:126)
        at com.oracle.svm.hosted.NativeImageGeneratorRunner$JDK9Plus.main(NativeImageGeneratorRunner.java:617)
Caused by: com.oracle.graal.pointsto.constraints.UnsupportedFeatureException: Unsupported features in 4 methods
Detailed message:
Error: Class initialization of ucar.nc2.grib.grib2.Grib2JpegDecoder failed. Use the option --initialize-at-run-time=ucar.nc2.grib.grib2.Grib2JpegDecoder to explicitly request delayed initialization of this class.
Original exception that caused the problem: java.lang.NoClassDefFoundError: jj2000/j2k/util/StringFormatException
        at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized0(Native Method)
        at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized(Unsafe.java:1155)
        at jdk.unsupported/sun.misc.Unsafe.ensureClassInitialized(Unsafe.java:743)
        at jdk.internal.vm.compiler/org.graalvm.compiler.serviceprovider.GraalUnsafeAccess.ensureClassInitialized(GraalUnsafeAccess.java:78)
        at com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.ensureClassInitialized(ConfigurableClassInitialization.java:178)
        at com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.computeInitKindAndMaybeInitializeClass(ConfigurableClassInitialization.java:648)
        at com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.computeInitKindAndMaybeInitializeClass(ConfigurableClassInitialization.java:131)
        at com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.shouldInitializeAtRuntime(ConfigurableClassInitialization.java:159)
        at com.oracle.svm.hosted.SVMHost.isInitialized(SVMHost.java:304)
        at com.oracle.graal.pointsto.meta.AnalysisType.isInitialized(AnalysisType.java:729)
        at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.maybeEagerlyInitialize(BytecodeParser.java:4449)
        at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.genNewInstance(BytecodeParser.java:4647)
        at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.genNewInstance(BytecodeParser.java:4636)
        at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.genNewInstance(BytecodeParser.java:4631)
        at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.processBytecode(BytecodeParser.java:5412)
        at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.iterateBytecodesForBlock(BytecodeParser.java:3513)
        at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.handleBytecodeBlock(BytecodeParser.java:3473)
        at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.processBlock(BytecodeParser.java:3318)
        at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.build(BytecodeParser.java:1149)
        at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.buildRootMethod(BytecodeParser.java:1041)
        at jdk.internal.vm.compiler/org.graalvm.compiler.java.GraphBuilderPhase$Instance.run(GraphBuilderPhase.java:84)
        at com.oracle.svm.hosted.phases.SharedGraphBuilderPhase.run(SharedGraphBuilderPhase.java:80)
        at jdk.internal.vm.compiler/org.graalvm.compiler.phases.Phase.run(Phase.java:49)
        at jdk.internal.vm.compiler/org.graalvm.compiler.phases.BasePhase.apply(BasePhase.java:214)
        at jdk.internal.vm.compiler/org.graalvm.compiler.phases.Phase.apply(Phase.java:42)
        at jdk.internal.vm.compiler/org.graalvm.compiler.phases.Phase.apply(Phase.java:38)
        at com.oracle.graal.pointsto.flow.AnalysisParsedGraph.parseBytecode(AnalysisParsedGraph.java:132)
        at com.oracle.graal.pointsto.meta.AnalysisMethod.ensureGraphParsed(AnalysisMethod.java:556)
        at com.oracle.graal.pointsto.flow.MethodTypeFlowBuilder.parse(MethodTypeFlowBuilder.java:167)
        at com.oracle.graal.pointsto.flow.MethodTypeFlowBuilder.apply(MethodTypeFlowBuilder.java:358)
        at com.oracle.graal.pointsto.flow.MethodTypeFlow.createTypeFlow(MethodTypeFlow.java:297)
        at com.oracle.graal.pointsto.flow.MethodTypeFlow.ensureTypeFlowCreated(MethodTypeFlow.java:286)
        at com.oracle.graal.pointsto.flow.MethodTypeFlow.addContext(MethodTypeFlow.java:107)
        at com.oracle.graal.pointsto.DefaultAnalysisPolicy$DefaultVirtualInvokeTypeFlow.onObservedUpdate(DefaultAnalysisPolicy.java:223)
        at com.oracle.graal.pointsto.flow.TypeFlow.notifyObservers(TypeFlow.java:487)
        at com.oracle.graal.pointsto.flow.TypeFlow.update(TypeFlow.java:556)
        at com.oracle.graal.pointsto.PointsToAnalysis$2.run(PointsToAnalysis.java:598)
        at com.oracle.graal.pointsto.util.CompletionExecutor.executeCommand(CompletionExecutor.java:195)
        at com.oracle.graal.pointsto.util.CompletionExecutor.lambda$executeService$0(CompletionExecutor.java:179)
        at java.base/java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1395)
        at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373)
        at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182)
        at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655)
        at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622)
        at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165)
Caused by: java.lang.ClassNotFoundException: jj2000.j2k.util.StringFormatException
        at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:445)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:587)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
        ... 45 more
Error: Detected a started Thread in the image heap. Threads running in the image generator are no longer running at image runtime.  To see how this object got instantiated use --trace-object-instantiation=org.apache.sis.internal.system.DelayedExecutor. The object was probably created by a class initializer and is reachable from a static field. You can request class initialization at image runtime by using the option --initialize-at-run-time=<class-name>. Or you can write your own initialization methods and call them explicitly from your main entry point.
Trace: Object was reached by 
        reading field java.util.concurrent.locks.AbstractQueuedSynchronizer$Node.waiter of
                constant java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode@319b6d92 reached by 
        reading field java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.firstWaiter of
                constant java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@3d79b181 reached by 
        reading field java.util.concurrent.DelayQueue.available of
                constant java.util.concurrent.DelayQueue@86b0745 reached by 
        scanning method org.apache.sis.internal.system.DelayedExecutor.schedule(DelayedExecutor.java:71)
Call path from entry point to org.apache.sis.internal.system.DelayedExecutor.schedule(DelayedRunnable): 
        at org.apache.sis.internal.system.DelayedExecutor.schedule(DelayedExecutor.java:71)
        at org.apache.sis.metadata.sql.MetadataSource.closeExpired(MetadataSource.java:1185)
        at org.apache.sis.metadata.sql.MetadataSource$CloseTask.run(MetadataSource.java:1154)
        at java.lang.Thread.run(Thread.java:833)
        at com.oracle.svm.core.thread.JavaThreads.threadStartRoutine(JavaThreads.java:597)
        at com.oracle.svm.core.posix.thread.PosixJavaThreads.pthreadStartRoutine(PosixJavaThreads.java:194)
        at com.oracle.svm.core.code.IsolateEnterStub.PosixJavaThreads_pthreadStartRoutine_e1f4a8c0039f8337338252cd8734f63a79b5e3df(generated:0)
Error: Detected a started Thread in the image heap. Threads running in the image generator are no longer running at image runtime.  To see how this object got instantiated use --trace-object-instantiation=org.apache.sis.internal.system.ReferenceQueueConsumer. The object was probably created by a class initializer and is reachable from a static field. You can request class initialization at image runtime by using the option --initialize-at-run-time=<class-name>. Or you can write your own initialization methods and call them explicitly from your main entry point.
Trace: Object was reached by 
        reading field org.apache.sis.internal.system.Threads.lastCreatedDaemon
Error: com.oracle.graal.pointsto.constraints.UnresolvedElementException: Discovered unresolved method during parsing: ucar.nc2.grib.grib2.Grib2JpegDecoder.<init>(int, boolean). To diagnose the issue you can use the --allow-incomplete-classpath option. The missing method is then reported at run time when it is accessed the first time.
Trace: 
        at parsing ucar.nc2.grib.grib2.Grib2DataReader2.getData40(Grib2DataReader2.java:727)
Call path from entry point to ucar.nc2.grib.grib2.Grib2DataReader2.getData40(RandomAccessFile, Grib2Drs$Type40): 
        at ucar.nc2.grib.grib2.Grib2DataReader2.getData40(Grib2DataReader2.java:716)
        at ucar.nc2.grib.grib2.Grib2DataReader2.getData(Grib2DataReader2.java:109)
        at ucar.nc2.grib.grib2.Grib2Record.readData(Grib2Record.java:321)
        at ucar.nc2.grib.collection.Grib2Iosp.readData(Grib2Iosp.java:405)
        at ucar.nc2.grib.collection.GribIosp$DataReader.read(GribIosp.java:940)
        at ucar.nc2.grib.collection.GribIosp.readDataFromCollection(GribIosp.java:860)
        at ucar.nc2.grib.collection.GribIosp.readData(GribIosp.java:810)
        at ucar.nc2.NetcdfFile.readData(NetcdfFile.java:1986)
        at ucar.nc2.Variable.reallyRead(Variable.java:860)
        at ucar.nc2.Variable._read(Variable.java:831)
        at ucar.nc2.Variable.read(Variable.java:709)
        at ucar.nc2.NCdumpW.printVariableData(NCdumpW.java:386)
        at ucar.nc2.dt.grid.GridCoordSys.showCoords(GridCoordSys.java:1405)
        at ucar.nc2.dt.grid.GridCoordSys.show(GridCoordSys.java:1355)
        at ucar.nc2.dt.grid.GridCoordSys.toString(GridCoordSys.java:1345)
        at sun.java2d.loops.GraphicsPrimitive.simplename(GraphicsPrimitive.java:610)
        at com.oracle.svm.jni.JNIJavaCallWrappers.jniInvoke_VA_LIST_GraphicsPrimitive_simplename_202a3eedb200439fc8661f318bfce7d323ea7603(generated:0)

        at com.oracle.graal.pointsto.constraints.UnsupportedFeatures.report(UnsupportedFeatures.java:129)
        at com.oracle.svm.hosted.NativeImageGenerator.runPointsToAnalysis(NativeImageGenerator.java:728)
        ... 6 more
Error: Image build request failed with exit status 1

Quarkus Tika Native Config Path Not Works

I put tika-config.xml with the following content and its reference in application.properties. When i build the project as native, i got the following error.

tika-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<properties>
    <parsers>
        <parser class="org.apache.tika.parser.DefaultParser">
            <mime-exclude>application/pdf</mime-exclude>
<!--            <mime>text/plain</mime>-->
        </parser>
    </parsers>
</properties>

application.properties

quarkus.native.additional-build-args =-H:ResourceConfigurationFiles=resources-config.json
quarkus.tika.tika-config-path=tika-config.xml

resources-config.json

{
  "resources": [
    {
      "pattern": ".*\\.xml$"
    }
  ]
}
Fatal error: org.graalvm.compiler.debug.GraalError: com.oracle.graal.pointsto.constraints.UnsupportedFeatureException: Detected a started Thread in the image heap. Threads running in the image generator are no longer running at image runtime.  To see how this object got instantiated use --trace-object-instantiation=org.apache.sis.internal.system.DelayedExecutor. The object was probably created by a class initializer and is reachable from a static field. You can request class initialization at image runtime by using the option --initialize-at-run-time=<class-name>. Or you can write your own initialization methods and call them explicitly from your main entry point.
        at com.oracle.graal.pointsto.util.AnalysisFuture.setException(AnalysisFuture.java:49)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:269)
        at com.oracle.graal.pointsto.util.AnalysisFuture.ensureDone(AnalysisFuture.java:63)
        at com.oracle.graal.pointsto.heap.ImageHeapScanner.lambda$postTask$9(ImageHeapScanner.java:611)
        at com.oracle.graal.pointsto.util.CompletionExecutor.executeCommand(CompletionExecutor.java:193)
        at com.oracle.graal.pointsto.util.CompletionExecutor.lambda$executeService$0(CompletionExecutor.java:177)
        at java.base/java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1426)
        at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)
        at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020)
        at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656)
        at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594)
        at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183)

Tika 2.x support

Just moving the original issue quarkusio/quarkus#21171

Description

Currently supported Tika version is 1.27. Is there any plan to support Tika 2.x?

Implementation ideas

I see that current implementation references AbstractRecursiveParserWrapperHandler.TIKA_CONTENT which I can't see in Tika 2.x...

PS: There's also Tika 1.28 release which is working fine with this extension.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.