diff --git a/source/extensions/filters/network/dubbo_proxy/dubbo_hessian2_serializer_impl.cc b/source/extensions/filters/network/dubbo_proxy/dubbo_hessian2_serializer_impl.cc index 473a0ce5c6f5b..7a63a1a15db51 100644 --- a/source/extensions/filters/network/dubbo_proxy/dubbo_hessian2_serializer_impl.cc +++ b/source/extensions/filters/network/dubbo_proxy/dubbo_hessian2_serializer_impl.cc @@ -55,14 +55,14 @@ DubboHessian2SerializerImpl::deserializeRpcResult(Buffer::Instance& buffer, switch (type) { case RpcResponseType::ResponseWithException: case RpcResponseType::ResponseWithExceptionWithAttachments: - case RpcResponseType::ResponseWithValue: result->setException(true); break; case RpcResponseType::ResponseWithNullValue: + case RpcResponseType::ResponseNullValueWithAttachments: has_value = false; FALLTHRU; + case RpcResponseType::ResponseWithValue: case RpcResponseType::ResponseValueWithAttachments: - case RpcResponseType::ResponseNullValueWithAttachments: result->setException(false); break; default: diff --git a/test/extensions/filters/network/dubbo_proxy/dubbo_hessian2_serializer_impl_test.cc b/test/extensions/filters/network/dubbo_proxy/dubbo_hessian2_serializer_impl_test.cc index 94ff9f3f7360e..4bc08cb93c458 100644 --- a/test/extensions/filters/network/dubbo_proxy/dubbo_hessian2_serializer_impl_test.cc +++ b/test/extensions/filters/network/dubbo_proxy/dubbo_hessian2_serializer_impl_test.cc @@ -109,7 +109,7 @@ TEST(HessianProtocolTest, deserializeRpcResult) { context->setBodySize(4); auto result = serializer.deserializeRpcResult(buffer, context); EXPECT_TRUE(result.second); - EXPECT_TRUE(result.first->hasException()); + EXPECT_FALSE(result.first->hasException()); } // incorrect body size