diff --git a/patches/cpw/mods/fml/common/network/internal/HandshakeCompletionHandler.java.patch b/patches/cpw/mods/fml/common/network/internal/HandshakeCompletionHandler.java.patch index 64edf7c..70f42c4 100644 --- a/patches/cpw/mods/fml/common/network/internal/HandshakeCompletionHandler.java.patch +++ b/patches/cpw/mods/fml/common/network/internal/HandshakeCompletionHandler.java.patch @@ -1,18 +1,19 @@ --- ../src-base/minecraft/cpw/mods/fml/common/network/internal/HandshakeCompletionHandler.java +++ ../src-work/minecraft/cpw/mods/fml/common/network/internal/HandshakeCompletionHandler.java -@@ -13,9 +13,15 @@ +@@ -13,8 +13,14 @@ @Override protected void channelRead0(ChannelHandlerContext ctx, CompleteHandshake msg) throws Exception { +- NetworkDispatcher dispatcher = ctx.channel().attr(NetworkDispatcher.FML_DISPATCHER).getAndRemove(); +- dispatcher.completeHandshake(msg.target); + // Cauldron start - attempt to fix race condition with attr being null -+ Object attr = ctx.channel().attr(NetworkDispatcher.FML_DISPATCHER); ++ io.netty.util.Attribute attr = ctx.channel().attr(NetworkDispatcher.FML_DISPATCHER); + if (attr != null) + { - NetworkDispatcher dispatcher = ctx.channel().attr(NetworkDispatcher.FML_DISPATCHER).getAndRemove(); - dispatcher.completeHandshake(msg.target); - } ++ NetworkDispatcher dispatcher = attr.getAndRemove(); ++ if (dispatcher != null) dispatcher.completeHandshake(msg.target); ++ } + // Cauldron end -+ } + } @Override - public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception