You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Jean-Baptiste (Jira)" <ji...@apache.org> on 2022/04/06 15:07:00 UTC
[jira] [Closed] (COMPRESS-512) "AsiExtraField is not a concrete class" with graalvm native-image
[ https://issues.apache.org/jira/browse/COMPRESS-512?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jean-Baptiste closed COMPRESS-512.
----------------------------------
Resolution: Invalid
> "AsiExtraField is not a concrete class" with graalvm native-image
> -----------------------------------------------------------------
>
> Key: COMPRESS-512
> URL: https://issues.apache.org/jira/browse/COMPRESS-512
> Project: Commons Compress
> Issue Type: Bug
> Components: Archivers
> Affects Versions: 1.20
> Reporter: Jean-Baptiste
> Priority: Trivial
>
> Hi, I am trying to unzip a file using apache commons compress. It is working with in a "classical jvm" like OpenJDK 11 or even Graalvm 11 but when I convert it in native-image it fails to run with its exception:
> {code:java}
> picocli.CommandLine$ExecutionException: Error while calling command (void fr.gouv.vitam.troubleshoot.TroubleShooter.logForAll(fr.gouv.vitam.troubleshoot.pojo.Component[],java.nio.file.Path) throws java.io.IOException): java.lang.ExceptionInInitializerError
> at picocli.CommandLine.executeUserObject(CommandLine.java:1816)
> at picocli.CommandLine.access$900(CommandLine.java:145)
> at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2150)
> at picocli.CommandLine$RunLast.handle(CommandLine.java:2144)
> at picocli.CommandLine$RunLast.handle(CommandLine.java:2108)
> at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:1975)
> at picocli.CommandLine.execute(CommandLine.java:1904)
> at fr.gouv.vitam.troubleshoot.TroubleShooter.main(TroubleShooter.java:165)
> Caused by: java.lang.ExceptionInInitializerError
> at com.oracle.svm.core.hub.ClassInitializationInfo.initialize(ClassInitializationInfo.java:290)
> at java.lang.Class.ensureInitialized(DynamicHub.java:496)
> at org.apache.commons.compress.archivers.zip.ZipArchiveEntry.setCentralDirectoryExtra(ZipArchiveEntry.java:700)
> at org.apache.commons.compress.archivers.zip.ZipFile.readCentralDirectoryEntry(ZipFile.java:805)
> at org.apache.commons.compress.archivers.zip.ZipFile.populateFromCentralDirectory(ZipFile.java:714)
> at org.apache.commons.compress.archivers.zip.ZipFile.<init>(ZipFile.java:371)
> at org.apache.commons.compress.archivers.zip.ZipFile.<init>(ZipFile.java:318)
> at org.apache.commons.compress.archivers.zip.ZipFile.<init>(ZipFile.java:274)
> at fr.gouv.vitam.troubleshoot.subcommands.ZipTroubleshootReader.extract(ZipTroubleshootReader.java:44)
> at fr.gouv.vitam.troubleshoot.subcommands.LogForAll.execute(LogForAll.java:28)
> at fr.gouv.vitam.troubleshoot.TroubleService.logForAll(TroubleService.java:41)
> at fr.gouv.vitam.troubleshoot.TroubleShooter.logForAll(TroubleShooter.java:119)
> at java.lang.reflect.Method.invoke(Method.java:566)
> at picocli.CommandLine.executeUserObject(CommandLine.java:1802)
> ... 7 more
> Caused by: java.lang.RuntimeException: class org.apache.commons.compress.archivers.zip.AsiExtraField is not a concrete class
> at org.apache.commons.compress.archivers.zip.ExtraFieldUtils.register(ExtraFieldUtils.java:73)
> at org.apache.commons.compress.archivers.zip.ExtraFieldUtils.<clinit>(ExtraFieldUtils.java:43)
> at com.oracle.svm.core.hub.ClassInitializationInfo.invokeClassInitializer(ClassInitializationInfo.java:350)
> at com.oracle.svm.core.hub.ClassInitializationInfo.initialize(ClassInitializationInfo.java:270)
> ... 20 more
> {code}
> The interesting part is that one I think:
> {code:java}
> org.apache.commons.compress.archivers.zip.AsiExtraField is not a concrete class at org.apache.commons.compress.archivers.zip.ExtraFieldUtils.register(ExtraFieldUtils.java:73) at org.apache.commons.compress.archivers.zip.ExtraFieldUtils.<clinit>(ExtraFieldUtils.java:43)
> {code}
> In order to build it in native image I am using the following configuration:
> {code:java}
> <plugin>
> <groupId>org.graalvm.nativeimage</groupId>
> <artifactId>native-image-maven-plugin</artifactId>
> <version>${native-image-maven-plugin.version}</version>
> <executions>
> <execution>
> <configuration>
> <skip>${NOT-compile-to-binary}</skip>
> <imageName>troubleshooter</imageName>
> <mainClass>fr.gouv.vitam.troubleshoot.TroubleShooter</mainClass>
> <buildArgs>-H:ReflectionConfigurationFiles=classes/META-INF/native-image/picocli-generated/fr.grouv.vitam/troubloushouter/reflect-config.json -H:+ReportUnsupportedElementsAtRuntime</buildArgs>
> </configuration>
> <goals>
> <goal>native-image</goal>
> </goals>
> <phase>package</phase>
> </execution>
> </executions>
> </plugin>
> {code}
>
> Do you have an idea ?
--
This message was sent by Atlassian Jira
(v8.20.1#820001)