From 53557dcd0582e09f7f35eb3bc2fd130fba3be4a0 Mon Sep 17 00:00:00 2001 From: Christian Date: Fri, 17 Jan 2014 17:00:55 -0500 Subject: [PATCH] Put logging exception handlers on all channel inbounds. Fix problem with failure to login. Closes #350 --- .../java/cpw/mods/fml/client/FMLClientHandler.java | 5 ++++- .../fml/common/network/NetworkEventFiringHandler.java | 8 ++++++++ .../network/handshake/ChannelRegistrationHandler.java | 11 +++++++++-- .../network/handshake/HandshakeMessageHandler.java | 8 ++++++++ .../common/network/handshake/NetworkDispatcher.java | 11 +++++++++++ .../common/network/internal/EntitySpawnHandler.java | 7 +++++++ .../fml/common/network/internal/FMLProxyPacket.java | 5 +++++ .../network/internal/HandshakeCompletionHandler.java | 9 +++++++++ .../fml/common/network/internal/OpenGuiHandler.java | 9 +++++++++ .../simpleimpl/SimpleChannelHandlerWrapper.java | 8 ++++++++ 10 files changed, 78 insertions(+), 3 deletions(-) diff --git a/src/main/java/cpw/mods/fml/client/FMLClientHandler.java b/src/main/java/cpw/mods/fml/client/FMLClientHandler.java index cfe7c13ef3..46c37731ac 100644 --- a/src/main/java/cpw/mods/fml/client/FMLClientHandler.java +++ b/src/main/java/cpw/mods/fml/client/FMLClientHandler.java @@ -144,6 +144,8 @@ public class FMLClientHandler implements IFMLSidedHandler private Map extraServerListData; private Map serverDataTag; + private NetHandlerPlayClient currentPlayClient; + /** * Called to start the whole game off * @@ -532,7 +534,7 @@ public class FMLClientHandler implements IFMLSidedHandler @Override public INetHandler getClientPlayHandler() { - return this.client.func_147114_u(); + return this.currentPlayClient; } @Override public NetworkManager getClientToServerNetworkManager() @@ -697,6 +699,7 @@ public class FMLClientHandler implements IFMLSidedHandler public void setPlayClient(NetHandlerPlayClient netHandlerPlayClient) { playClientBlock.countDown(); + this.currentPlayClient = netHandlerPlayClient; } @Override diff --git a/src/main/java/cpw/mods/fml/common/network/NetworkEventFiringHandler.java b/src/main/java/cpw/mods/fml/common/network/NetworkEventFiringHandler.java index 25a1189551..c7f3ee0c7b 100644 --- a/src/main/java/cpw/mods/fml/common/network/NetworkEventFiringHandler.java +++ b/src/main/java/cpw/mods/fml/common/network/NetworkEventFiringHandler.java @@ -1,5 +1,7 @@ package cpw.mods.fml.common.network; +import org.apache.logging.log4j.Level; +import cpw.mods.fml.common.FMLLog; import cpw.mods.fml.common.network.internal.FMLProxyPacket; import io.netty.channel.ChannelHandlerContext; import io.netty.channel.SimpleChannelInboundHandler; @@ -26,4 +28,10 @@ public class NetworkEventFiringHandler extends SimpleChannelInboundHandler & IHandshakeState> ext S newState = state.accept(ctx, null); ctx.attr(fmlHandshakeState).set(newState); } + + @Override + public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception + { + FMLLog.log(Level.ERROR, cause, "HandshakeMessageHandler exception"); + super.exceptionCaught(ctx, cause); + } } diff --git a/src/main/java/cpw/mods/fml/common/network/handshake/NetworkDispatcher.java b/src/main/java/cpw/mods/fml/common/network/handshake/NetworkDispatcher.java index 3d099b59f6..80878d265c 100644 --- a/src/main/java/cpw/mods/fml/common/network/handshake/NetworkDispatcher.java +++ b/src/main/java/cpw/mods/fml/common/network/handshake/NetworkDispatcher.java @@ -15,6 +15,7 @@ import java.util.List; import java.util.Locale; import java.util.concurrent.Callable; import java.util.concurrent.TimeUnit; +import org.apache.logging.log4j.Level; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.network.EnumConnectionState; import net.minecraft.network.INetHandler; @@ -242,6 +243,7 @@ public class NetworkDispatcher extends SimpleChannelInboundHandler imple if ("FML|HS".equals(channelName) || "REGISTER".equals(channelName) || "UNREGISTER".equals(channelName)) { FMLProxyPacket proxy = new FMLProxyPacket(msg); + proxy.setDispatcher(this); handshakeChannel.writeInbound(proxy); // forward any messages into the regular channel for (Object push : handshakeChannel.inboundMessages()) @@ -278,6 +280,7 @@ public class NetworkDispatcher extends SimpleChannelInboundHandler imple if ("FML|HS".equals(channelName) || "REGISTER".equals(channelName) || "UNREGISTER".equals(channelName)) { FMLProxyPacket proxy = new FMLProxyPacket(msg); + proxy.setDispatcher(this); handshakeChannel.writeInbound(proxy); for (Object push : handshakeChannel.inboundMessages()) { @@ -433,4 +436,12 @@ public class NetworkDispatcher extends SimpleChannelInboundHandler imple { completeClientSideConnection(ConnectionType.valueOf(type)); } + + @Override + public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception + { + FMLLog.log(Level.ERROR, cause, "NetworkDispatcher exception"); + super.exceptionCaught(ctx, cause); + } + } diff --git a/src/main/java/cpw/mods/fml/common/network/internal/EntitySpawnHandler.java b/src/main/java/cpw/mods/fml/common/network/internal/EntitySpawnHandler.java index f11f3820ba..c17c2060d8 100644 --- a/src/main/java/cpw/mods/fml/common/network/internal/EntitySpawnHandler.java +++ b/src/main/java/cpw/mods/fml/common/network/internal/EntitySpawnHandler.java @@ -123,4 +123,11 @@ public class EntitySpawnHandler extends SimpleChannelInboundHandler { @@ -15,4 +17,11 @@ public class OpenGuiHandler extends SimpleChannelInboundHandler