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)