From 8a309b56d919a61e18b21895cfc901b24c1057f1 Mon Sep 17 00:00:00 2001 From: s809 <43530948+s809@users.noreply.github.com> Date: Sat, 13 Jan 2024 15:46:38 +0500 Subject: [PATCH] Fix crash when changing config while disconnected --- .../distanthorizons/core/network/IConnection.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/com/seibel/distanthorizons/core/network/IConnection.java b/core/src/main/java/com/seibel/distanthorizons/core/network/IConnection.java index c05dccd86..8a74d5c37 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/network/IConnection.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/network/IConnection.java @@ -3,6 +3,7 @@ package com.seibel.distanthorizons.core.network; import com.seibel.distanthorizons.core.network.messages.base.CloseReasonMessage; import com.seibel.distanthorizons.core.network.protocol.FutureTrackableNetworkMessage; import com.seibel.distanthorizons.core.network.protocol.NetworkMessage; +import io.netty.channel.ChannelException; import io.netty.channel.ChannelFutureListener; import io.netty.channel.ChannelHandlerContext; @@ -23,7 +24,14 @@ public interface IConnection { CompletableFuture future = new CompletableFuture<>(); - this.getChannelContext().writeAndFlush(message).addListener(writeFuture -> + ChannelHandlerContext ctx = this.getChannelContext(); + if (ctx == null) + { + future.completeExceptionally(new ChannelException("Channel is closed.")); + return future; + } + + ctx.writeAndFlush(message).addListener(writeFuture -> { if (writeFuture.cause() != null) {