diff --git a/extensions/websockets-next/server/runtime/src/main/java/io/quarkus/websockets/next/runtime/WebSocketServerRecorder.java b/extensions/websockets-next/server/runtime/src/main/java/io/quarkus/websockets/next/runtime/WebSocketServerRecorder.java index c53d15645b01dd..7ec8dcd262c8f3 100644 --- a/extensions/websockets-next/server/runtime/src/main/java/io/quarkus/websockets/next/runtime/WebSocketServerRecorder.java +++ b/extensions/websockets-next/server/runtime/src/main/java/io/quarkus/websockets/next/runtime/WebSocketServerRecorder.java @@ -116,8 +116,8 @@ public void handle(Void event) { LOG.debugf("@OnTextMessage callback consuming Multi completed: %s", connection); } else { - LOG.errorf(r.cause(), - "Unable to complete @OnTextMessage callback consuming Multi: %s", + logFailure(r.cause(), + "Unable to complete @OnTextMessage callback consuming Multi", connection); } }); @@ -134,8 +134,8 @@ public void handle(Void event) { LOG.debugf("@OnBinaryMessage callback consuming Multi completed: %s", connection); } else { - LOG.errorf(r.cause(), - "Unable to complete @OnBinaryMessage callback consuming Multi: %s", + logFailure(r.cause(), + "Unable to complete @OnBinaryMessage callback consuming Multi", connection); } }); @@ -143,7 +143,7 @@ public void handle(Void event) { }); } } else { - LOG.errorf(r.cause(), "Unable to complete @OnOpen callback: %s", connection); + logFailure(r.cause(), "Unable to complete @OnOpen callback", connection); } }); } @@ -156,7 +156,7 @@ public void handle(Void event) { if (r.succeeded()) { LOG.debugf("@OnTextMessage callback consumed text message: %s", connection); } else { - LOG.errorf(r.cause(), "Unable to consume text message in @OnTextMessage callback: %s", + logFailure(r.cause(), "Unable to consume text message in @OnTextMessage callback", connection); } }); @@ -184,7 +184,7 @@ public void handle(Void event) { if (r.succeeded()) { LOG.debugf("@OnBinaryMessage callback consumed text message: %s", connection); } else { - LOG.errorf(r.cause(), "Unable to consume text message in @OnBinaryMessage callback: %s", + logFailure(r.cause(), "Unable to consume binary message in @OnBinaryMessage callback", connection); } }); @@ -210,8 +210,7 @@ public void handle(Void event) { if (r.succeeded()) { LOG.debugf("@OnPongMessage callback consumed text message: %s", connection); } else { - LOG.errorf(r.cause(), "Unable to consume text message in @OnPongMessage callback: %s", - connection); + logFailure(r.cause(), "Unable to consume text message in @OnPongMessage callback", connection); } }); }); @@ -226,7 +225,7 @@ public void handle(Void event) { if (r.succeeded()) { LOG.debugf("@OnClose callback completed: %s", connection); } else { - LOG.errorf(r.cause(), "Unable to complete @OnClose callback: %s", connection); + logFailure(r.cause(), "Unable to complete @OnClose callback", connection); } connectionManager.remove(generatedEndpointClass, connection); }); @@ -254,6 +253,29 @@ public void handle(Void event) { }; } + private static void logFailure(Throwable throwable, String message, WebSocketConnection connection) { + if (isWebSocketIsClosedFailure(throwable)) { + LOG.debugf(throwable, + message + ": %s", + connection); + } else { + LOG.errorf(throwable, + message + ": %s", + connection); + } + } + + private static boolean isWebSocketIsClosedFailure(Throwable throwable) { + if (throwable == null) { + return false; + } + String message = throwable.getMessage(); + if (message == null) { + return false; + } + return message.contains("WebSocket is closed"); + } + private void textMessageHandler(WebSocketConnection connection, WebSocketEndpoint endpoint, ServerWebSocket ws, Context context, Consumer textAction, boolean newDuplicatedContext) { ws.textMessageHandler(new Handler() { diff --git a/integration-tests/opentelemetry-scheduler/src/main/java/io/quarkus/it/opentelemetry/scheduler/Counter.java b/integration-tests/opentelemetry-scheduler/src/main/java/io/quarkus/it/opentelemetry/scheduler/Counter.java index c175e7716fe9f5..84a83804aabcf3 100644 --- a/integration-tests/opentelemetry-scheduler/src/main/java/io/quarkus/it/opentelemetry/scheduler/Counter.java +++ b/integration-tests/opentelemetry-scheduler/src/main/java/io/quarkus/it/opentelemetry/scheduler/Counter.java @@ -23,6 +23,7 @@ public int get() { @Scheduled(cron = "*/1 * * * * ?", identity = "myCounter") void increment() throws InterruptedException { + System.out.println(Thread.currentThread().getName()); Thread.sleep(100l); counter.incrementAndGet(); }