diff --git a/proxy/src/main/java/net/md_5/bungee/netty/LengthPrependerAndCompressor.java b/proxy/src/main/java/net/md_5/bungee/netty/LengthPrependerAndCompressor.java index cb04fc7614..90e535c4a4 100644 --- a/proxy/src/main/java/net/md_5/bungee/netty/LengthPrependerAndCompressor.java +++ b/proxy/src/main/java/net/md_5/bungee/netty/LengthPrependerAndCompressor.java @@ -114,6 +114,16 @@ protected void encode(ChannelHandlerContext ctx, ByteBuf msg, List out) } } + @Override + public void handlerRemoved(ChannelHandlerContext ctx) throws Exception + { + if ( zlib != null ) + { + zlib.free(); + zlib = null; + } + } + public void setCompose(boolean compose) { if ( compose ) @@ -147,6 +157,7 @@ public void setCompress(boolean compress) if ( zlib != null ) { zlib.free(); + zlib = null; } } } @@ -180,10 +191,6 @@ private static byte varintSize(int value) { return 4; } - if ( MAX_SUPPORTED_VARINT_LENGTH_LEN < 5 ) - { - throw new IllegalArgumentException( "Packet length " + value + " longer than supported (max. 268435455 for 4 byte varint)" ); - } - return 5; + throw new IllegalArgumentException( "Packet length " + value + " longer than supported (max. 268435455 for 4 byte varint)" ); } }