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();
         }

Reply via email to