@@ -34,11 +34,13 @@ public class AxiomBigPayloadHandler extends MessageToMessageDecoder<ByteBuf> {
3434 private final int payloadId ;
3535 private final Connection connection ;
3636 private final Map <String , PacketHandler > packetHandlers ;
37+ private boolean handleUserEvents ;
3738
38- public AxiomBigPayloadHandler (int payloadId , Connection connection , Map <String , PacketHandler > packetHandlers ) {
39+ public AxiomBigPayloadHandler (int payloadId , Connection connection , Map <String , PacketHandler > packetHandlers , boolean handleUserEvents ) {
3940 this .payloadId = payloadId ;
4041 this .connection = connection ;
4142 this .packetHandlers = packetHandlers ;
43+ this .handleUserEvents = handleUserEvents ;
4244 }
4345
4446 @ Override
@@ -122,9 +124,16 @@ public static void apply(ChannelPipeline pipeline, AxiomBigPayloadHandler handle
122124
123125 @ Override
124126 public void userEventTriggered (ChannelHandlerContext ctx , Object evt ) throws Exception {
125- if (evt == ConnectionEvent .COMPRESSION_THRESHOLD_SET || evt == ConnectionEvent .COMPRESSION_DISABLED ) {
126- apply (ctx .pipeline (), new AxiomBigPayloadHandler (this .payloadId , this .connection , this .packetHandlers ));
127+ if (this .handleUserEvents ) {
128+ if (evt == ConnectionEvent .COMPRESSION_THRESHOLD_SET || evt == ConnectionEvent .COMPRESSION_DISABLED ) {
129+ AxiomBigPayloadHandler handler = new AxiomBigPayloadHandler (this .payloadId , this .connection , this .packetHandlers , false );
130+ apply (ctx .pipeline (), handler );
131+ super .userEventTriggered (ctx , evt );
132+ handler .handleUserEvents = true ;
133+ return ;
134+ }
127135 }
136+
128137 super .userEventTriggered (ctx , evt );
129138 }
130139
0 commit comments