Repository: quarkusio/quarkus
Issue: Query hangs on invalid URI

### Describe the bug

While developping an app, I ended up forgetting about URI encoding the data and sent this:


http://server:8081/query?q=g\\\\+\\\\+&dataOnly=true

In the back end I saw this exception:
```java
//
Caused by: java.net.URISyntaxException: Illegal character in query at index 14: /query?q=g\\\\+\\\\+&dataOnly=true
//
```
but in the front end I ended up having a timeout without any error

### Expected behavior

The server doesn't hang and we have an error

### Actual behavior

The server hangs until the client timeouts

### How to Reproduce?

1. Create an http reactive-reasteasy 2.6.3.Final app
2. Send a malformed request: http://server:8081/query?q=g\\\\+\\\\+&dataOnly=true

### Output of `uname -a` or `ver`

_No response_

### Output of `java -version`

_No response_

### GraalVM version (if different from Java)

_No response_

### Quarkus version or git rev

2.6.3.Final

### Build tool (ie. output of `mvnw --version` or `gradlew --version`)

_No response_

### Additional information

_No response_

Changed files:
extensions/opentelemetry/opentelemetry/deployment/src/test/java/io/quarkus/opentelemetry/deployment/VertxClientOpenTelemetryTest.java
extensions/opentelemetry/opentelemetry/runtime/src/main/java/io/quarkus/opentelemetry/runtime/tracing/vertx/OpenTelemetryVertxTracer.java

diff --git a/extensions/opentelemetry/opentelemetry/deployment/src/test/java/io/quarkus/opentelemetry/deployment/VertxClientOpenTelemetryTest.java b/extensions/opentelemetry/opentelemetry/deployment/src/test/java/io/quarkus/opentelemetry/deployment/VertxClientOpenTelemetryTest.java
index d8f7f6334b1..e05898a19fb 100644
--- a/extensions/opentelemetry/opentelemetry/deployment/src/test/java/io/quarkus/opentelemetry/deployment/VertxClientOpenTelemetryTest.java
+++ b/extensions/opentelemetry/opentelemetry/deployment/src/test/java/io/quarkus/opentelemetry/deployment/VertxClientOpenTelemetryTest.java
@@ -114,6 +114,18 @@ void path() throws Exception {
         assertEquals(server.getParentSpanId(), client.getSpanId());
     }
 
+    @Test
+    void uri() throws Exception {
+        HttpResponse<Buffer> response = WebClient.create(vertx)
+                .get(uri.getPort(), uri.getHost(), "/hello?q=g\\\\+\\\\+&dataOnly=true")
+                .send()
+                .toCompletionStage().toCompletableFuture()
+                .get();
+
+        List<SpanData> spans = spanExporter.getFinishedSpanItems(2);
+        assertEquals(2, spans.size());
+    }
+
     @ApplicationScoped
     public static class HelloRouter {
         @Inject
diff --git a/extensions/opentelemetry/opentelemetry/runtime/src/main/java/io/quarkus/opentelemetry/runtime/tracing/vertx/OpenTelemetryVertxTracer.java b/extensions/opentelemetry/opentelemetry/runtime/src/main/java/io/quarkus/opentelemetry/runtime/tracing/vertx/OpenTelemetryVertxTracer.java
index 63f08e75182..5d66ff56cf5 100644
--- a/extensions/opentelemetry/opentelemetry/runtime/src/main/java/io/quarkus/opentelemetry/runtime/tracing/vertx/OpenTelemetryVertxTracer.java
+++ b/extensions/opentelemetry/opentelemetry/runtime/src/main/java/io/quarkus/opentelemetry/runtime/tracing/vertx/OpenTelemetryVertxTracer.java
@@ -5,7 +5,6 @@
 import static io.quarkus.opentelemetry.runtime.OpenTelemetryConfig.INSTRUMENTATION_NAME;
 import static io.quarkus.vertx.core.runtime.context.VertxContextSafetyToggle.setContextSafe;
 
-import java.net.URI;
 import java.util.List;
 import java.util.Map;
 import java.util.function.BiConsumer;
@@ -303,9 +302,8 @@ private ServerSpanNameExtractor(
         @Override
         public String extract(final HttpRequest httpRequest) {
             if (httpRequest instanceof HttpServerRequest) {
-                String path = URI.create(httpRequest.uri()).getPath();
-                if (path != null && path.length() > 1) {
-                    return path.substring(1);
+                if (httpRequest.uri() != null && httpRequest.uri().length() > 1) {
+                    return httpRequest.uri().substring(1);
                 } else {
                     return "HTTP " + httpRequest.method();
                 }