From 07aa7bd7f969336c561765ca70c4e311d863eb8a Mon Sep 17 00:00:00 2001 From: ericek111 Date: Fri, 25 Sep 2026 08:26:03 +0000 Subject: [PATCH] Don't report a channel join that leaving the server cut short Connecting with a channel moves there once the channel list is in; if the connection was left again before that, the move ran against the closed socket and reported an error nobody could act on. Co-Authored-By: Claude Opus 5.5 --- .../src/main/java/com/ts3client/net/TeamspeakConnection.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/ts3-client/core/src/main/java/com/ts3client/net/TeamspeakConnection.java b/ts3-client/core/src/main/java/com/ts3client/net/TeamspeakConnection.java index 57bb9ba..9561538 100644 --- a/ts3-client/core/src/main/java/com/ts3client/net/TeamspeakConnection.java +++ b/ts3-client/core/src/main/java/com/ts3client/net/TeamspeakConnection.java @@ -404,6 +404,8 @@ public final class TeamspeakConnection implements TS3Listener { */ private void joinDefaultChannelIfNeeded(String channel, String channelPassword) { if (normaliseChannelRef(channel) == null) return; + LocalTeamspeakClientSocket sock = client; + if (sock == null || !connected) return; // already left again ChannelNode target = model.findChannelByPath(channel); if (target == null) { ui.onError("Channel \"" + channel.trim() + "\" not found on this server."); @@ -411,9 +413,10 @@ public final class TeamspeakConnection implements TS3Listener { } if (currentChannelId() == target.id) return; // clientinit already put us there try { - client.joinChannel(target.id, (channelPassword == null || channelPassword.isEmpty()) + sock.joinChannel(target.id, (channelPassword == null || channelPassword.isEmpty()) ? null : channelPassword); } catch (Exception e) { + if (!connected) return; error("Could not join channel \"" + target.name + "\": " + rootMessage(e)); } }