From 5acdb2b3c5d4b131461efda6a67d07cc0102788d Mon Sep 17 00:00:00 2001 From: Camotoy <20743703+Camotoy@users.noreply.github.com> Date: Sat, 29 May 2021 13:00:58 -0400 Subject: [PATCH] Mark connectionHandler as sharable (#1179) Fixes #1170. The reasoning for this PR is largely outlined in the above issue. As the ChannelInboundHandlerAdapter has no private class, a race condition cannot occur and therefore marking the class as sharable should incur no cost. --- .../comphenix/protocol/injector/netty/ProtocolInjector.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/main/java/com/comphenix/protocol/injector/netty/ProtocolInjector.java b/src/main/java/com/comphenix/protocol/injector/netty/ProtocolInjector.java index e87549c9..a30f6d8e 100644 --- a/src/main/java/com/comphenix/protocol/injector/netty/ProtocolInjector.java +++ b/src/main/java/com/comphenix/protocol/injector/netty/ProtocolInjector.java @@ -186,6 +186,12 @@ public class ProtocolInjector implements ChannelListener { channel.pipeline().addFirst(beginInitProtocol); ctx.fireChannelRead(msg); } + + @Override + public boolean isSharable() { + // Needed if multiple objects are stored in the bootstrap list + return true; + } }; FuzzyReflection fuzzy = FuzzyReflection.fromObject(serverConnection, true);