Skip to content

Error running Quarkus: java.lang.ExceptionInInitializerError > @POST with Record #51431

@myfear

Description

@myfear

Describe the bug

Quarkus 3.30.2 on Java 21

I have a Rest endpoint (tried with an without @BeanParam, same result):

 @POST
    @Produces("image/png")
    @Consumes(MediaType.APPLICATION_JSON)
    public Response generate(@BeanParam QRCodeConfig cfg) {

And the

public record QRCodeConfig(
        String text,
        Integer size,

And I get a weird error starting my application:

6:53:34,858 ERROR [io.qua.run.Quarkus] Error running Quarkus: java.lang.ExceptionInInitializerError
    at java.base/jdk.internal.misc.Unsafe.allocateInstance(Native Method)
    at java.base/java.lang.invoke.DirectMethodHandle.allocateInstance(DirectMethodHandle.java:501)
    at io.quarkus.runtime.Quarkus.run(Quarkus.java:79)
    at io.quarkus.runtime.Quarkus.run(Quarkus.java:51)
    at io.quarkus.runtime.Quarkus.run(Quarkus.java:144)
    at io.quarkus.runner.GeneratedMain.main(Unknown Source)
    at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
    at java.base/java.lang.reflect.Method.invoke(Method.java:580)
    at io.quarkus.runner.bootstrap.StartupActionImpl$1.run(StartupActionImpl.java:135)
    at java.base/java.lang.Thread.run(Thread.java:1583)
Caused by: java.lang.RuntimeException: Failed to start quarkus
    at io.quarkus.runner.ApplicationImpl.<clinit>(Unknown Source)
    ... 10 more
Caused by: java.lang.VerifyError: Bad type on operand stack
Exception Details:
  Location:
    com/example/QRCodeConfig.__quarkus_rest_inject(Lorg/jboss/resteasy/reactive/server/injection/ResteasyReactiveInjectionContext;)Lcom/example/QRCodeConfig; @31: invokespecial
  Reason:
    Type uninitialized 27 (current frame, stack[1]) is not assignable to 'java/lang/Integer'
  Current Frame:
    bci: @31
    flags: { }
    locals: { 'org/jboss/resteasy/reactive/server/injection/ResteasyReactiveInjectionContext', null, null, null, null, null, null, null, null, null, null }
    stack: { uninitialized 27, uninitialized 27 }
  Bytecode:
    0000000: 014c 014d 014e 013a 0401 3a05 013a 0601
    0000010: 3a07 013a 0801 3a09 013a 0abb 0001 59b7
    0000020: 0063 b0

    at java.base/java.lang.Class.getDeclaredMethods0(Native Method)
    at java.base/java.lang.Class.privateGetDeclaredMethods(Class.java:3578)
    at java.base/java.lang.Class.getMethodsRecursive(Class.java:3719)
    at java.base/java.lang.Class.getMethod0(Class.java:3705)
    at java.base/java.lang.Class.getMethod(Class.java:2393)
    at org.jboss.resteasy.reactive.server.core.parameters.RecordBeanParamExtractor.<init>(RecordBeanParamExtractor.java:16)
    at org.jboss.resteasy.reactive.server.core.startup.RuntimeResourceDeployment.parameterExtractor(RuntimeResourceDeployment.java:708)
    at org.jboss.resteasy.reactive.server.core.startup.RuntimeResourceDeployment.buildResourceMethod(RuntimeResourceDeployment.java:346)
    at org.jboss.resteasy.reactive.server.core.startup.RuntimeDeploymentManager.deploy(RuntimeDeploymentManager.java:137)
    at io.quarkus.resteasy.reactive.server.runtime.ResteasyReactiveRecorder.createDeployment(ResteasyReactiveRecorder.java:163)
    at io.quarkus.runner.recorded.ResteasyReactiveProcessor$setupDeployment944680882.deploy_0(Unknown Source)
    at io.quarkus.runner.recorded.ResteasyReactiveProcessor$setupDeployment944680882.deploy(Unknown Source)

Expected behavior

It works :)

Actual behavior

Exception during startup.

How to Reproduce?

I have a reproducer here:
https://github.com/myfear/ejq_substack_articles/tree/main/qr-designer

Just quarkus dev and see the exception.
mvn compile works.

Output of uname -a or ver

Darwin Kernel Version 25.1.0

Output of java -version

OpenJDK Runtime Environment Temurin-21.0.8+9 (build 21.0.8+9-LTS)

Quarkus version or git rev

3.30.2

Build tool (ie. output of mvnw --version or gradlew --version)

Apache Maven 3.9.11 (3e54c93a704957b63ee3494413a2b544fd3d825b)

Additional information

No response

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions