From 2eb2953442b560467f0c19a24b999cb181e7e9f2 Mon Sep 17 00:00:00 2001 From: md_5 Date: Sat, 8 Feb 2014 09:36:41 +1100 Subject: [PATCH] Optimize throwing of CancelSendSignal's by storing a single instance. --- .../src/main/java/net/md_5/bungee/ServerConnector.java | 8 ++++---- .../net/md_5/bungee/connection/CancelSendSignal.java | 6 ++++++ .../net/md_5/bungee/connection/DownstreamBridge.java | 6 +++--- .../net/md_5/bungee/connection/UpstreamBridge.java | 10 +++++----- 4 files changed, 18 insertions(+), 12 deletions(-) diff --git a/proxy/src/main/java/net/md_5/bungee/ServerConnector.java b/proxy/src/main/java/net/md_5/bungee/ServerConnector.java index d8981ad2..e2a545f0 100644 --- a/proxy/src/main/java/net/md_5/bungee/ServerConnector.java +++ b/proxy/src/main/java/net/md_5/bungee/ServerConnector.java @@ -90,7 +90,7 @@ public class ServerConnector extends PacketHandler ch.setProtocol( Protocol.GAME ); thisState = State.LOGIN; - throw new CancelSendSignal(); + throw CancelSendSignal.INSTANCE; } @Override @@ -182,7 +182,7 @@ public class ServerConnector extends PacketHandler thisState = State.FINISHED; - throw new CancelSendSignal(); + throw CancelSendSignal.INSTANCE; } @Override @@ -203,7 +203,7 @@ public class ServerConnector extends PacketHandler if ( event.isCancelled() && event.getCancelServer() != null ) { user.connect( event.getCancelServer() ); - throw new CancelSendSignal(); + throw CancelSendSignal.INSTANCE; } String message = bungee.getTranslation( "connect_kick" ) + target.getName() + ": " + event.getKickReason(); @@ -215,7 +215,7 @@ public class ServerConnector extends PacketHandler user.sendMessage( message ); } - throw new CancelSendSignal(); + throw CancelSendSignal.INSTANCE; } @Override diff --git a/proxy/src/main/java/net/md_5/bungee/connection/CancelSendSignal.java b/proxy/src/main/java/net/md_5/bungee/connection/CancelSendSignal.java index 5afaac22..1d352f60 100644 --- a/proxy/src/main/java/net/md_5/bungee/connection/CancelSendSignal.java +++ b/proxy/src/main/java/net/md_5/bungee/connection/CancelSendSignal.java @@ -1,8 +1,14 @@ package net.md_5.bungee.connection; +import lombok.AccessLevel; +import lombok.NoArgsConstructor; + +@NoArgsConstructor(access = AccessLevel.PRIVATE) public class CancelSendSignal extends Error { + public static final CancelSendSignal INSTANCE = CancelSendSignal.INSTANCE; + @Override public Throwable initCause(Throwable cause) { diff --git a/proxy/src/main/java/net/md_5/bungee/connection/DownstreamBridge.java b/proxy/src/main/java/net/md_5/bungee/connection/DownstreamBridge.java index ad334efb..5b1f0453 100644 --- a/proxy/src/main/java/net/md_5/bungee/connection/DownstreamBridge.java +++ b/proxy/src/main/java/net/md_5/bungee/connection/DownstreamBridge.java @@ -97,7 +97,7 @@ public class DownstreamBridge extends PacketHandler if ( !con.getTabList().onListUpdate( playerList.getUsername(), playerList.isOnline(), playerList.getPing() ) ) { - throw new CancelSendSignal(); + throw CancelSendSignal.INSTANCE; } } @@ -196,7 +196,7 @@ public class DownstreamBridge extends PacketHandler if ( bungee.getPluginManager().callEvent( event ).isCancelled() ) { - throw new CancelSendSignal(); + throw CancelSendSignal.INSTANCE; } if ( pluginMessage.getTag().equals( "BungeeCord" ) ) @@ -365,7 +365,7 @@ public class DownstreamBridge extends PacketHandler con.disconnect0( event.getKickReasonComponent() ); // TODO: Prefix our own stuff. } server.setObsolete( true ); - throw new CancelSendSignal(); + throw CancelSendSignal.INSTANCE; } @Override diff --git a/proxy/src/main/java/net/md_5/bungee/connection/UpstreamBridge.java b/proxy/src/main/java/net/md_5/bungee/connection/UpstreamBridge.java index 5786c87f..f1f383a7 100644 --- a/proxy/src/main/java/net/md_5/bungee/connection/UpstreamBridge.java +++ b/proxy/src/main/java/net/md_5/bungee/connection/UpstreamBridge.java @@ -90,7 +90,7 @@ public class UpstreamBridge extends PacketHandler con.getServer().unsafe().sendPacket( chat ); } } - throw new CancelSendSignal(); + throw CancelSendSignal.INSTANCE; } @Override @@ -104,7 +104,7 @@ public class UpstreamBridge extends PacketHandler if ( !results.isEmpty() ) { con.unsafe().sendPacket( new TabCompleteResponse( results.toArray( new String[ results.size() ] ) ) ); - throw new CancelSendSignal(); + throw CancelSendSignal.INSTANCE; } } } @@ -120,18 +120,18 @@ public class UpstreamBridge extends PacketHandler { if ( pluginMessage.getTag().equals( "BungeeCord" ) ) { - throw new CancelSendSignal(); + throw CancelSendSignal.INSTANCE; } // Hack around Forge race conditions if ( pluginMessage.getTag().equals( "FML" ) && pluginMessage.getStream().readUnsignedByte() == 1 ) { - throw new CancelSendSignal(); + throw CancelSendSignal.INSTANCE; } PluginMessageEvent event = new PluginMessageEvent( con, con.getServer(), pluginMessage.getTag(), pluginMessage.getData().clone() ); if ( bungee.getPluginManager().callEvent( event ).isCancelled() ) { - throw new CancelSendSignal(); + throw CancelSendSignal.INSTANCE; } }