quarkus: Hot reload breaks when using suspending functions in controller with Quarkus security

Describe the bug

When editing a suspending function in a Jakarta resource that is protected by Quarkus security (for example with the @PermitAll annotation), the reload will error and yield the following exception Intercepted methods of the bean org.acme.ExampleResource may not be declared final: This is likely due to the all-open plugin not being taken into account properly/too late. It should be noted that the recompilation works fine if Quarkus security is not used.

Expected behavior

Live reload works correctly and new code is used

Actual behavior

Compilation error: Intercepted methods of the bean org.acme.ExampleResource may not be declared final:

How to Reproduce?

Reproducer: suspending-reproducer.zip

Steps:

  1. Start Quarkus in development mode
  2. Navigate to http://localhost:8080/hello
  3. Edit the text returned in ExampleResource::hello
  4. reload the page in the browser

Output of uname -a or ver

Microsoft Windows [Version 10.0.22621.2134]

Output of java -version

17.0.1

GraalVM version (if different from Java)

No response

Quarkus version or git rev

3.2.4.Final

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

Gradle 8.1.1

Additional information

No response

About this issue

  • Original URL
  • State: open
  • Created 10 months ago
  • Comments: 21 (11 by maintainers)

Most upvoted comments

I’ve found a workaround: #37109 (comment)

Thank you so much! Confirming that this works.

Here is how compiler options are meant to be configured https://quarkus.io/guides/kotlin#configuring-live-reload-compiler