diff --git a/dubbo-rpc/dubbo-rpc-dubbo/src/main/java/org/apache/dubbo/rpc/protocol/dubbo/DecodeableRpcResult.java b/dubbo-rpc/dubbo-rpc-dubbo/src/main/java/org/apache/dubbo/rpc/protocol/dubbo/DecodeableRpcResult.java index 30ee3a0e3e1..100c6e53cd3 100644 --- a/dubbo-rpc/dubbo-rpc-dubbo/src/main/java/org/apache/dubbo/rpc/protocol/dubbo/DecodeableRpcResult.java +++ b/dubbo-rpc/dubbo-rpc-dubbo/src/main/java/org/apache/dubbo/rpc/protocol/dubbo/DecodeableRpcResult.java @@ -118,11 +118,13 @@ public Object decode(Channel channel, InputStream input) throws IOException { public void decode() throws Exception { if (!hasDecoded && channel != null && inputStream != null) { try { - if (ConfigurationUtils.getSystemConfiguration().getBoolean(SERIALIZATION_SECURITY_CHECK_KEY, false)) { - Object serializationType_obj = invocation.get(SERIALIZATION_ID_KEY); - if (serializationType_obj != null) { - if ((byte) serializationType_obj != serializationType) { - throw new IOException("Unexpected serialization id:" + serializationType + " received from network, please check if the peer send the right id."); + if (invocation != null) { + if (ConfigurationUtils.getSystemConfiguration().getBoolean(SERIALIZATION_SECURITY_CHECK_KEY, false)) { + Object serializationTypeObj = invocation.get(SERIALIZATION_ID_KEY); + if (serializationTypeObj != null) { + if ((byte) serializationTypeObj != serializationType) { + throw new IOException("Unexpected serialization id:" + serializationType + " received from network, please check if the peer send the right id."); + } } } } diff --git a/dubbo-rpc/dubbo-rpc-dubbo/src/main/java/org/apache/dubbo/rpc/protocol/dubbo/DubboCodecSupport.java b/dubbo-rpc/dubbo-rpc-dubbo/src/main/java/org/apache/dubbo/rpc/protocol/dubbo/DubboCodecSupport.java index 2dbb312b431..500888fa853 100644 --- a/dubbo-rpc/dubbo-rpc-dubbo/src/main/java/org/apache/dubbo/rpc/protocol/dubbo/DubboCodecSupport.java +++ b/dubbo-rpc/dubbo-rpc-dubbo/src/main/java/org/apache/dubbo/rpc/protocol/dubbo/DubboCodecSupport.java @@ -30,21 +30,21 @@ public class DubboCodecSupport { public static Serialization getRequestSerialization(URL url, Invocation invocation) { - Object serializationType_obj = invocation.get(SERIALIZATION_ID_KEY); - if (serializationType_obj != null) { - return CodecSupport.getSerializationById((byte) serializationType_obj); + Object serializationTypeObj = invocation.get(SERIALIZATION_ID_KEY); + if (serializationTypeObj != null) { + return CodecSupport.getSerializationById((byte) serializationTypeObj); } return ExtensionLoader.getExtensionLoader(Serialization.class).getExtension( url.getParameter(org.apache.dubbo.remoting.Constants.SERIALIZATION_KEY, Constants.DEFAULT_REMOTING_SERIALIZATION)); } public static Serialization getResponseSerialization(URL url, AppResponse appResponse) { - Object invocation_obj = appResponse.getAttribute(INVOCATION_KEY); - if (invocation_obj != null) { - Invocation invocation = (Invocation) invocation_obj; - Object serializationType_obj = invocation.get(SERIALIZATION_ID_KEY); - if (serializationType_obj != null) { - return CodecSupport.getSerializationById((byte) serializationType_obj); + Object invocationObj = appResponse.getAttribute(INVOCATION_KEY); + if (invocationObj != null) { + Invocation invocation = (Invocation) invocationObj; + Object serializationTypeObj = invocation.get(SERIALIZATION_ID_KEY); + if (serializationTypeObj != null) { + return CodecSupport.getSerializationById((byte) serializationTypeObj); } } return ExtensionLoader.getExtensionLoader(Serialization.class).getExtension(