From b5748a1219e2b2ec160b389b751870a8b5aea01d Mon Sep 17 00:00:00 2001 From: Michael Jumper Date: Thu, 11 Dec 2025 22:58:20 -0800 Subject: [PATCH] GUACAMOLE-2181: Silence noisy WebSocket error when socket is closed. If the WebSocket is closed while a message is on its way out, an IllegalStateException is thrown. --- .../websocket/GuacamoleWebSocketTunnelEndpoint.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/guacamole-common/src/main/java/org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.java b/guacamole-common/src/main/java/org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.java index 405e6ed90..901ed8348 100644 --- a/guacamole-common/src/main/java/org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.java +++ b/guacamole-common/src/main/java/org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.java @@ -149,7 +149,12 @@ public abstract class GuacamoleWebSocketTunnelEndpoint extends Endpoint { // connection has changed, and synchronization need only be performed // in context of the new remote. synchronized (remote) { - remote.sendText(instruction); + try { + remote.sendText(instruction); + } + catch (IllegalStateException e) { + throw new IOException("WebSocket message could not be sent.", e); + } } } @@ -280,7 +285,7 @@ public abstract class GuacamoleWebSocketTunnelEndpoint extends Endpoint { } catch (IOException e) { - logger.debug("I/O error prevents further reads.", e); + logger.debug("I/O error prevents further WebSocket communication.", e); closeConnection(session, GuacamoleStatus.SERVER_ERROR); }