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 2020/04/30 08:42:00 UTC

[jira] [Created] (COMPRESS-512) "AsiExtraField is not a concrete class" with graalvm native-image

Jean-Baptiste created COMPRESS-512:
--------------------------------------

             Summary: "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


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.3.4#803005)