This is an automated email from the ASF dual-hosted git repository. jamesnetherton pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel.git
commit f43fe93b085f736a5228f0cbf72197496ace4fac Author: James Netherton <[email protected]> AuthorDate: Tue Feb 15 10:59:33 2022 +0000 CAMEL-17646: camel-vertx-websocket - Server exception handler should check for cause ConnectionBase.CLOSED_EXCEPTION --- .../camel/component/vertx/websocket/VertxWebsocketConsumer.java | 6 ++++++ .../component/vertx/websocket/VertxWebsocketResultHandler.java | 6 ++++-- .../camel/component/vertx/websocket/VertxWebSocketTestSupport.java | 2 +- .../component/vertx/websocket/VertxWebsocketExternalServerTest.java | 2 +- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/components/camel-vertx/camel-vertx-websocket/src/main/java/org/apache/camel/component/vertx/websocket/VertxWebsocketConsumer.java b/components/camel-vertx/camel-vertx-websocket/src/main/java/org/apache/camel/component/vertx/websocket/VertxWebsocketConsumer.java index d90ab65..cf1991d 100644 --- a/components/camel-vertx/camel-vertx-websocket/src/main/java/org/apache/camel/component/vertx/websocket/VertxWebsocketConsumer.java +++ b/components/camel-vertx/camel-vertx-websocket/src/main/java/org/apache/camel/component/vertx/websocket/VertxWebsocketConsumer.java @@ -17,6 +17,7 @@ package org.apache.camel.component.vertx.websocket; import io.vertx.core.net.SocketAddress; +import io.vertx.core.net.impl.ConnectionBase; import org.apache.camel.AsyncCallback; import org.apache.camel.Exchange; import org.apache.camel.Processor; @@ -71,6 +72,11 @@ public class VertxWebsocketConsumer extends DefaultConsumer { } public void onException(String connectionKey, Throwable cause, SocketAddress remote) { + if (cause == ConnectionBase.CLOSED_EXCEPTION) { + // Ignore as VertxWebsocketHost registers a closeHandler to trap WebSocket close events + return; + } + Exchange exchange = createExchange(false); exchange.getMessage().setHeader(VertxWebsocketConstants.REMOTE_ADDRESS, remote); exchange.getMessage().setHeader(VertxWebsocketConstants.CONNECTION_KEY, connectionKey); diff --git a/components/camel-vertx/camel-vertx-websocket/src/main/java/org/apache/camel/component/vertx/websocket/VertxWebsocketResultHandler.java b/components/camel-vertx/camel-vertx-websocket/src/main/java/org/apache/camel/component/vertx/websocket/VertxWebsocketResultHandler.java index b68803e..3daecca 100644 --- a/components/camel-vertx/camel-vertx-websocket/src/main/java/org/apache/camel/component/vertx/websocket/VertxWebsocketResultHandler.java +++ b/components/camel-vertx/camel-vertx-websocket/src/main/java/org/apache/camel/component/vertx/websocket/VertxWebsocketResultHandler.java @@ -65,8 +65,10 @@ class VertxWebsocketResultHandler { } else { final StringBuilder msg = new StringBuilder("Sending message to multiple WebSocket peers failed:"); for (Map.Entry<String, Throwable> entry : errors.entrySet()) { - msg.append("\n connection key: ").append(entry.getKey()) - .append(", cause: " + entry.getValue().getMessage()); + msg.append("\n connection key: ") + .append(entry.getKey()) + .append(", cause: ") + .append(entry.getValue().getMessage()); } exchange.setException(new CamelExecutionException(msg.toString(), exchange)); } diff --git a/components/camel-vertx/camel-vertx-websocket/src/test/java/org/apache/camel/component/vertx/websocket/VertxWebSocketTestSupport.java b/components/camel-vertx/camel-vertx-websocket/src/test/java/org/apache/camel/component/vertx/websocket/VertxWebSocketTestSupport.java index 32b159f..ac5ff4e 100644 --- a/components/camel-vertx/camel-vertx-websocket/src/test/java/org/apache/camel/component/vertx/websocket/VertxWebSocketTestSupport.java +++ b/components/camel-vertx/camel-vertx-websocket/src/test/java/org/apache/camel/component/vertx/websocket/VertxWebSocketTestSupport.java @@ -56,7 +56,7 @@ public class VertxWebSocketTestSupport extends CamelTestSupport { .toCompletionStage() .toCompletableFuture(); WebSocket webSocket = future.get(5, TimeUnit.SECONDS); - webSocket.textMessageHandler(message -> handler.accept(message)); + webSocket.textMessageHandler(handler::accept); return webSocket; } diff --git a/components/camel-vertx/camel-vertx-websocket/src/test/java/org/apache/camel/component/vertx/websocket/VertxWebsocketExternalServerTest.java b/components/camel-vertx/camel-vertx-websocket/src/test/java/org/apache/camel/component/vertx/websocket/VertxWebsocketExternalServerTest.java index 54589a0..196bd12 100644 --- a/components/camel-vertx/camel-vertx-websocket/src/test/java/org/apache/camel/component/vertx/websocket/VertxWebsocketExternalServerTest.java +++ b/components/camel-vertx/camel-vertx-websocket/src/test/java/org/apache/camel/component/vertx/websocket/VertxWebsocketExternalServerTest.java @@ -124,7 +124,7 @@ public class VertxWebsocketExternalServerTest extends VertxWebSocketTestSupport try { host.stop(); } catch (Exception e) { - LOG.warn("Failed to stop Vert.x server {}", e); + LOG.warn("Failed to stop Vert.x server", e); } context.stop(); }
