snowdrop-zen / quarkus

Quarkus: Supersonic Subatomic Java.
https://quarkus.io
Apache License 2.0
1 stars 0 forks source link

Resteasy Reactive: PatternSyntaxException named capturing group is missing trailing '>' #420

Closed snowdrop-bot closed 3 years ago

snowdrop-bot commented 3 years ago

Describe the bug

Resteasy Reactive fails with the following exception if @Path contains a regex whose group name contains _.

Note: Resteasy Classic works fine.

Expected behavior

No response

Actual behavior

2021-09-12 10:59:33,807 ERROR [io.qua.run.boo.StartupActionImpl] (Quarkus Main Thread) Error running Quarkus: java.lang.reflect.InvocationTargetException
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at io.quarkus.runner.bootstrap.StartupActionImpl$1.run(StartupActionImpl.java:98)
    at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.lang.ExceptionInInitializerError
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
    at java.base/java.lang.Class.newInstance(Class.java:584)
    at io.quarkus.runtime.Quarkus.run(Quarkus.java:65)
    at io.quarkus.runtime.Quarkus.run(Quarkus.java:42)
    at io.quarkus.runtime.Quarkus.run(Quarkus.java:119)
    at io.quarkus.runner.GeneratedMain.main(GeneratedMain.zig:29)
    ... 6 more
Caused by: java.lang.RuntimeException: Failed to start quarkus
    at io.quarkus.runner.ApplicationImpl.<clinit>(ApplicationImpl.zig:417)
    ... 15 more
Caused by: java.util.regex.PatternSyntaxException: named capturing group is missing trailing '>' near index 4
(?<x_y>[0-9]])$
    ^
    at java.base/java.util.regex.Pattern.error(Pattern.java:2027)
    at java.base/java.util.regex.Pattern.groupname(Pattern.java:2949)
    at java.base/java.util.regex.Pattern.group0(Pattern.java:2995)
    at java.base/java.util.regex.Pattern.sequence(Pattern.java:2123)
    at java.base/java.util.regex.Pattern.expr(Pattern.java:2068)
    at java.base/java.util.regex.Pattern.compile(Pattern.java:1782)
    at java.base/java.util.regex.Pattern.<init>(Pattern.java:1428)
    at java.base/java.util.regex.Pattern.compile(Pattern.java:1068)
    at org.jboss.resteasy.reactive.server.mapping.URITemplate.<init>(URITemplate.java:157)
    at org.jboss.resteasy.reactive.server.core.startup.RuntimeResourceDeployment.buildResourceMethod(RuntimeResourceDeployment.java:126)
    at org.jboss.resteasy.reactive.server.core.startup.RuntimeDeploymentManager.deploy(RuntimeDeploymentManager.java:109)
    at io.quarkus.resteasy.reactive.server.runtime.ResteasyReactiveRecorder.createDeployment(ResteasyReactiveRecorder.java:116)
    at io.quarkus.deployment.steps.ResteasyReactiveProcessor$setupEndpoints-783580934.deploy_1(ResteasyReactiveProcessor$setupEndpoints-783580934.zig:5889)
    at io.quarkus.deployment.steps.ResteasyReactiveProcessor$setupEndpoints-783580934.deploy(ResteasyReactiveProcessor$setupEndpoints-783580934.zig:45)
    at io.quarkus.runner.ApplicationImpl.<clinit>(ApplicationImpl.zig:386)
    ... 15 more

How to Reproduce?

  1. https://code.quarkus.io/?e=resteasy-reactive&e=kotlin&extension-search=kotlin
  2. Add the following Endpoint
    @GET
    @Path("/{x_y: [0-9]]}")
    fun xyMethod(
        @RestPath("x_y") xy: Int
    ): String {
        return "Hello $xy"
    }

Quarkus version or git rev

2.2.2.Final

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

Maven 3.8.1


https://github.com/quarkusio/quarkus/issues/20076


$upstream:20076$