Skip to content

native-image no longer supports resource bundles in .properties file format that reside at JAR's root #3535

@zakkak

Description

@zakkak

Describe the issue
#3446 and specifically commit 3e5e1b8 breaks support of jar files including resource bundles in .properties file format at their root. Such an example is org.eclipse.yasson (seen failing in quarkusio/quarkus#18305).

Steps to reproduce the issue
Please include both build steps as well as run steps

  1. Build native-image from master branch
  2. git clone --branch yasson-resourcebundle https://github.com/zakkak/issue-reproducers /tmp/yasson-resourcebundle
  3. cd /tmp/yasson-resourcebundle
  4. mvn package
  5. native-image -jar target/reproducer-1.0-SNAPSHOT.jar

Describe GraalVM and your environment:

  • GraalVM version: 44d3ba0
  • JDK major version: 11
  • OS: Fedora 34
  • Architecture: AMD64

More details

Apply jar:file:///home/zakkak/code/tmp/yasson-reproducer/target/reproducer-1.0-SNAPSHOT.jar!/META-INF/native-image/org.eclipse/yasson/native-image.properties
Executing [
/home/zakkak/code/mandrel-packaging/mandrel-java11-21.3.0-devadb0569cd5b/bin/java \
-XX:+UseParallelGC \
-XX:+UnlockExperimentalVMOptions \
-XX:+EnableJVMCI \
-Dtruffle.TrustAllTruffleRuntimeProviders=true \
-Dtruffle.TruffleRuntime=com.oracle.truffle.api.impl.DefaultTruffleRuntime \
-Dgraalvm.ForcePolyglotInvalid=true \
-Dgraalvm.locatorDisabled=true \
-Dsubstratevm.IgnoreGraalVersionCheck=true \
--add-exports=java.base/com.sun.crypto.provider=ALL-UNNAMED \
--add-exports=java.base/jdk.internal.event=ALL-UNNAMED \
--add-exports=java.base/jdk.internal.loader=ALL-UNNAMED \
--add-exports=java.base/jdk.internal.logger=ALL-UNNAMED \
--add-exports=java.base/jdk.internal.misc=ALL-UNNAMED \
--add-exports=java.base/jdk.internal.module=ALL-UNNAMED \
--add-exports=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED \
--add-exports=java.base/jdk.internal.org.xml.sax.helpers=ALL-UNNAMED \
--add-exports=java.base/jdk.internal.perf=ALL-UNNAMED \
--add-exports=java.base/jdk.internal.ref=ALL-UNNAMED \
--add-exports=java.base/jdk.internal.util.xml.impl=ALL-UNNAMED \
--add-exports=java.base/jdk.internal.util.xml=ALL-UNNAMED \
--add-exports=java.base/sun.invoke.util=ALL-UNNAMED \
--add-exports=java.base/sun.nio.ch=ALL-UNNAMED \
--add-exports=java.base/sun.reflect.annotation=ALL-UNNAMED \
--add-exports=java.base/sun.reflect.generics.reflectiveObjects=ALL-UNNAMED \
--add-exports=java.base/sun.reflect.generics.repository=ALL-UNNAMED \
--add-exports=java.base/sun.reflect.generics.tree=ALL-UNNAMED \
--add-exports=java.base/sun.security.jca=ALL-UNNAMED \
--add-exports=java.base/sun.security.provider=ALL-UNNAMED \
--add-exports=java.base/sun.security.util=ALL-UNNAMED \
--add-exports=java.base/sun.text.spi=ALL-UNNAMED \
--add-exports=java.base/sun.util.calendar=ALL-UNNAMED \
--add-exports=java.base/sun.util.locale.provider=ALL-UNNAMED \
--add-exports=java.base/sun.util.resources=ALL-UNNAMED \
--add-exports=java.xml.crypto/org.jcp.xml.dsig.internal.dom=ALL-UNNAMED \
--add-exports=jdk.internal.vm.ci/jdk.vm.ci.aarch64=ALL-UNNAMED \
--add-exports=jdk.internal.vm.ci/jdk.vm.ci.amd64=ALL-UNNAMED \
--add-exports=jdk.internal.vm.ci/jdk.vm.ci.code.site=ALL-UNNAMED \
--add-exports=jdk.internal.vm.ci/jdk.vm.ci.code.stack=ALL-UNNAMED \
--add-exports=jdk.internal.vm.ci/jdk.vm.ci.code=ALL-UNNAMED \
--add-exports=jdk.internal.vm.ci/jdk.vm.ci.common=ALL-UNNAMED \
--add-exports=jdk.internal.vm.ci/jdk.vm.ci.hotspot.aarch64=ALL-UNNAMED \
--add-exports=jdk.internal.vm.ci/jdk.vm.ci.hotspot.amd64=ALL-UNNAMED \
--add-exports=jdk.internal.vm.ci/jdk.vm.ci.hotspot.sparc=ALL-UNNAMED \
--add-exports=jdk.internal.vm.ci/jdk.vm.ci.hotspot=ALL-UNNAMED \
--add-exports=jdk.internal.vm.ci/jdk.vm.ci.meta=ALL-UNNAMED \
--add-exports=jdk.internal.vm.ci/jdk.vm.ci.runtime=ALL-UNNAMED \
--add-exports=jdk.internal.vm.ci/jdk.vm.ci.services.internal=ALL-UNNAMED \
--add-exports=jdk.internal.vm.ci/jdk.vm.ci.services=ALL-UNNAMED \
--add-exports=jdk.internal.vm.ci/jdk.vm.ci.sparc=ALL-UNNAMED \
--add-exports=jdk.jfr/jdk.jfr.events=ALL-UNNAMED \
--add-exports=jdk.jfr/jdk.jfr.internal.consumer=ALL-UNNAMED \
--add-exports=jdk.jfr/jdk.jfr.internal.handlers=ALL-UNNAMED \
--add-exports=jdk.jfr/jdk.jfr.internal.jfc=ALL-UNNAMED \
--add-exports=jdk.jfr/jdk.jfr.internal=ALL-UNNAMED \
-XX:-UseJVMCICompiler \
-Xss10m \
-Xms1g \
-Xmx14g \
-Duser.country=US \
-Duser.language=en \
-Djava.awt.headless=true \
-Dorg.graalvm.version=21.3.0-devadb0569cd5b \
'-Dorg.graalvm.config=Mandrel Distribution' \
-Dcom.oracle.graalvm.isaot=true \
-Djava.system.class.loader=com.oracle.svm.hosted.NativeImageSystemClassLoader \
-Dawt.toolkit=sun.awt.X11.XToolkit \
-Djava.awt.graphicsenv=sun.awt.X11GraphicsEnvironment \
-Djava.awt.printerjob=sun.print.PSPrinterJob \
-Xshare:off \
--module-path \
/home/zakkak/code/mandrel-packaging/mandrel-java11-21.3.0-devadb0569cd5b/lib/jvmci/graal-sdk.jar:/home/zakkak/code/mandrel-packaging/mandrel-java11-21.3.0-devadb0569cd5b/lib/truffle/truffle-api.jar \
--upgrade-module-path \
/home/zakkak/code/mandrel-packaging/mandrel-java11-21.3.0-devadb0569cd5b/lib/jvmci/graal.jar \
-Djdk.internal.lambda.disableEagerInitialization=true \
-Djdk.internal.lambda.eagerlyInitialize=false \
-Djava.lang.invoke.InnerClassLambdaMetafactory.initializeLambdas=false \
--add-exports=jdk.internal.vm.ci/jdk.vm.ci.code=jdk.internal.vm.compiler \
-javaagent:/home/zakkak/code/mandrel-packaging/mandrel-java11-21.3.0-devadb0569cd5b/lib/svm/builder/svm.jar \
-cp \
/home/zakkak/code/mandrel-packaging/mandrel-java11-21.3.0-devadb0569cd5b/lib/jvmci/graal-sdk.jar:/home/zakkak/code/mandrel-packaging/mandrel-java11-21.3.0-devadb0569cd5b/lib/jvmci/graal.jar:/home/zakkak/code/mandrel-packaging/mandrel-java11-21.3.0-devadb0569cd5b/lib/svm/builder/svm.jar:/home/zakkak/code/mandrel-packaging/mandrel-java11-21.3.0-devadb0569cd5b/lib/svm/builder/pointsto.jar:/home/zakkak/code/mandrel-packaging/mandrel-java11-21.3.0-devadb0569cd5b/lib/svm/builder/objectfile.jar \
'com.oracle.svm.hosted.NativeImageGeneratorRunner$JDK9Plus' \
-imagecp \
/home/zakkak/code/tmp/yasson-reproducer/target/reproducer-1.0-SNAPSHOT.jar:/home/zakkak/code/mandrel-packaging/mandrel-java11-21.3.0-devadb0569cd5b/lib/svm/library-support.jar \
-H:Path=/home/zakkak/code/tmp/yasson-reproducer \
-H:+DumpTargetInfo \
'-H:Class@manifest from file:///home/zakkak/code/tmp/yasson-reproducer/target/reproducer-1.0-SNAPSHOT.jar=com.example.App' \
'-H:Name@manifest from file:///home/zakkak/code/tmp/yasson-reproducer/target/reproducer-1.0-SNAPSHOT.jar=reproducer-1.0-SNAPSHOT' \
'-H:IncludeResourceBundles@jar:file:///home/zakkak/code/tmp/yasson-reproducer/target/reproducer-1.0-SNAPSHOT.jar!/META-INF/native-image/org.eclipse/yasson/native-image.properties=yasson-messages' \
-H:CLibraryPath=/home/zakkak/code/mandrel-packaging/mandrel-java11-21.3.0-devadb0569cd5b/lib/svm/clibraries/linux-amd64
]
[reproducer-1.0-SNAPSHOT:971574]    classlist:   1,241.94 ms,  0.96 GB
[reproducer-1.0-SNAPSHOT:971574]        (cap):     419.94 ms,  0.96 GB
[reproducer-1.0-SNAPSHOT:971574]        setup:   2,040.90 ms,  0.96 GB
The bundle named: yasson-messages, has not been found. If the bundle is part of a module, verify the bundle name is a fully qualified class name. Otherwise verify the bundle path is accessible in the classpath.
# Building image for target platform: org.graalvm.nativeimage.Platform$LINUX_AMD64
# Using native toolchain:
#   Name: GNU project C and C++ compiler (gcc)
#   Vendor: redhat
#   Version: 11.1.1
#   Target architecture: x86_64
#   Path: /usr/bin/gcc
# Using CLibrary: com.oracle.svm.core.posix.linux.libc.GLibC
[reproducer-1.0-SNAPSHOT:971574]     (clinit):     239.72 ms,  1.76 GB
# Static libraries:
#   ../../mandrel-packaging/mandrel-java11-21.3.0-devadb0569cd5b/lib/svm/clibraries/linux-amd64/liblibchelper.a
#   ../../mandrel-packaging/mandrel-java11-21.3.0-devadb0569cd5b/lib/static/linux-amd64/glibc/libnet.a
#   ../../mandrel-packaging/mandrel-java11-21.3.0-devadb0569cd5b/lib/static/linux-amd64/glibc/libnio.a
#   ../../mandrel-packaging/mandrel-java11-21.3.0-devadb0569cd5b/lib/static/linux-amd64/glibc/libjava.a
#   ../../mandrel-packaging/mandrel-java11-21.3.0-devadb0569cd5b/lib/static/linux-amd64/glibc/libfdlibm.a
#   ../../mandrel-packaging/mandrel-java11-21.3.0-devadb0569cd5b/lib/static/linux-amd64/glibc/libzip.a
#   ../../mandrel-packaging/mandrel-java11-21.3.0-devadb0569cd5b/lib/svm/clibraries/linux-amd64/libjvm.a
# Other libraries: pthread,dl,z,rt
[reproducer-1.0-SNAPSHOT:971574]   (typeflow):   4,472.47 ms,  1.76 GB
[reproducer-1.0-SNAPSHOT:971574]    (objects):   4,983.88 ms,  1.76 GB
[reproducer-1.0-SNAPSHOT:971574]   (features):     499.74 ms,  1.76 GB
[reproducer-1.0-SNAPSHOT:971574]     analysis:  10,520.38 ms,  1.76 GB
[reproducer-1.0-SNAPSHOT:971574]     universe:     931.48 ms,  1.76 GB
[reproducer-1.0-SNAPSHOT:971574]      (parse):   1,039.00 ms,  1.76 GB
[reproducer-1.0-SNAPSHOT:971574]     (inline):   2,466.46 ms,  2.28 GB
[reproducer-1.0-SNAPSHOT:971574]    (compile):  11,982.80 ms,  3.19 GB
[reproducer-1.0-SNAPSHOT:971574]      compile:  16,257.00 ms,  3.19 GB
[reproducer-1.0-SNAPSHOT:971574]        image:   2,433.45 ms,  3.19 GB
[reproducer-1.0-SNAPSHOT:971574]        write:     219.31 ms,  3.19 GB
[reproducer-1.0-SNAPSHOT:971574]      [total]:  33,908.73 ms,  3.19 GB
# Printing build artifacts to: /home/zakkak/code/tmp/yasson-reproducer/reproducer-1.0-SNAPSHOT.build_artifacts.txt

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions