Describe the bug
I create an ApplicationScoped class twice through a separate Dependent config. It works in dev mode, but fails in production
Expected behavior
Either fail in dev mode or work everywhere
Actual behavior
fails in production with error
Exception in thread "main" java.lang.ExceptionInInitializerError
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.base/java.lang.reflect.Constructor.newInstance(Unknown Source)
at java.base/java.lang.Class.newInstance(Unknown Source)
at io.quarkus.runtime.Quarkus.run(Quarkus.java:61)
at io.quarkus.runtime.Quarkus.run(Quarkus.java:38)
at io.quarkus.runtime.Quarkus.run(Quarkus.java:104)
at io.quarkus.runner.GeneratedMain.main(GeneratedMain.zig:29)
Caused by: java.lang.RuntimeException: Failed to start quarkus
at io.quarkus.runner.ApplicationImpl.<clinit>(ApplicationImpl.zig:135)
... 9 more
Caused by: java.lang.RuntimeException: Failed to initialize Arc
at io.quarkus.arc.Arc.initialize(Arc.java:26)
at io.quarkus.arc.runtime.ArcRecorder.getContainer(ArcRecorder.java:24)
at io.quarkus.deployment.steps.ArcProcessor$generateResources-1025303321.deploy_0(ArcProcessor$generateResources-1025303321.zig:76)
at io.quarkus.deployment.steps.ArcProcessor$generateResources-1025303321.deploy(ArcProcessor$generateResources-1025303321.zig:40)
at io.quarkus.runner.ApplicationImpl.<clinit>(ApplicationImpl.zig:115)
... 9 more
Caused by: java.lang.ClassFormatError: Duplicate method name "<init>" with signature "()V" in class file org/acme/commandmode/SomeClass
at java.base/java.lang.ClassLoader.defineClass1(Native Method)
at java.base/java.lang.ClassLoader.defineClass(Unknown Source)
at java.base/java.security.SecureClassLoader.defineClass(Unknown Source)
at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(Unknown Source)
at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(Unknown Source)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(Unknown Source)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(Unknown Source)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(Unknown Source)
at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Unknown Source)
at org.acme.commandmode.SomeClassConfig_ProducerMethod_someClass2_3bf5c39e53a0326c125a8f6a544d05f7a852b9db_Bean.<init>(SomeClassConfig_ProducerMethod_someClass2_3bf5c39e53a0326c125a8f6a544d05f7a852b9db_Bean.zig:80)
at io.quarkus.arc.setup.Default_ComponentsProvider.addBeans1(Default_ComponentsProvider.zig:148)
at io.quarkus.arc.setup.Default_ComponentsProvider.getComponents(Default_ComponentsProvider.zig:38)
at io.quarkus.arc.impl.ArcContainerImpl.<init>(ArcContainerImpl.java:113)
at io.quarkus.arc.Arc.initialize(Arc.java:20)
... 13 more
Describe the bug I create an ApplicationScoped class twice through a separate Dependent config. It works in dev mode, but fails in production
Expected behavior Either fail in dev mode or work everywhere
Actual behavior fails in production with error
To Reproduce
./gradlew clean quarkusDev
and see thatsomeClass2\n someClass1
message is printed./gradlew clean build
, thendocker build --tag test -f ./docker/Dockerfile .
anddocker run -it --rm test
and see the exceptionEnvironment (please complete the following information):
java -version
: openjdk 11.0.7 2020-04-14mvnw --version
orgradlew --version
): Gradle 6.5.1Additional context (Add any other context about the problem here.)
https://github.com/quarkusio/quarkus/issues/13372
$upstream:13372$