[ 
https://issues.apache.org/jira/browse/COMPRESS-512?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17518163#comment-17518163
 ] 

Kyriakos Mandalas commented on COMPRESS-512:
--------------------------------------------

[~Jbbouille] did you manage to find some workaround about this problem? Thank 
you.

> "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)

Reply via email to