diff --git a/dubbo-remoting/dubbo-remoting-netty4/src/main/java/org/apache/dubbo/remoting/transport/netty4/NettyChannel.java b/dubbo-remoting/dubbo-remoting-netty4/src/main/java/org/apache/dubbo/remoting/transport/netty4/NettyChannel.java index 677a6579e6..b87c166a86 100644 --- a/dubbo-remoting/dubbo-remoting-netty4/src/main/java/org/apache/dubbo/remoting/transport/netty4/NettyChannel.java +++ b/dubbo-remoting/dubbo-remoting-netty4/src/main/java/org/apache/dubbo/remoting/transport/netty4/NettyChannel.java @@ -72,7 +72,7 @@ final class NettyChannel extends AbstractChannel { private final Netty4BatchWriteQueue writeQueue; - private final Codec2 codec; + private Codec2 codec; private final boolean encodeInIOThread; @@ -365,4 +365,8 @@ final class NettyChannel extends AbstractChannel { return frameworkModel.getExtensionLoader(Codec2.class).getExtension("default"); } } + + public void setCodec(Codec2 codec) { + this.codec = codec; + } } diff --git a/dubbo-remoting/dubbo-remoting-netty4/src/main/java/org/apache/dubbo/remoting/transport/netty4/NettyConfigOperator.java b/dubbo-remoting/dubbo-remoting-netty4/src/main/java/org/apache/dubbo/remoting/transport/netty4/NettyConfigOperator.java index dca821ea68..c708b12810 100644 --- a/dubbo-remoting/dubbo-remoting-netty4/src/main/java/org/apache/dubbo/remoting/transport/netty4/NettyConfigOperator.java +++ b/dubbo-remoting/dubbo-remoting-netty4/src/main/java/org/apache/dubbo/remoting/transport/netty4/NettyConfigOperator.java @@ -60,6 +60,7 @@ public class NettyConfigOperator implements ChannelOperator { } if (!(codec2 instanceof DefaultCodec)){ + ((NettyChannel) channel).setCodec(codec2); NettyCodecAdapter codec = new NettyCodecAdapter(codec2, channel.getUrl(), handler); ((NettyChannel) channel).getNioChannel().pipeline().addLast( codec.getDecoder()