From 057dcb451202a5f8440a7405c9323b75bb19693a Mon Sep 17 00:00:00 2001 From: Albumen Kevin Date: Thu, 1 Jun 2023 15:43:07 +0800 Subject: [PATCH] Fix alibaba Filter / Result Compact (#12440) --- .../src/main/java/com/alibaba/dubbo/rpc/Filter.java | 9 ++++++++- .../src/main/java/com/alibaba/dubbo/rpc/Result.java | 10 ++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/dubbo-compatible/src/main/java/com/alibaba/dubbo/rpc/Filter.java b/dubbo-compatible/src/main/java/com/alibaba/dubbo/rpc/Filter.java index fa7b3e40a3..fa33393123 100644 --- a/dubbo-compatible/src/main/java/com/alibaba/dubbo/rpc/Filter.java +++ b/dubbo-compatible/src/main/java/com/alibaba/dubbo/rpc/Filter.java @@ -18,6 +18,9 @@ package com.alibaba.dubbo.rpc; import org.apache.dubbo.rpc.AsyncRpcResult; +import org.apache.dubbo.rpc.AttachmentsAdapter; + +import java.util.Map; @Deprecated public interface Filter extends org.apache.dubbo.rpc.Filter { @@ -27,7 +30,7 @@ public interface Filter extends org.apache.dubbo.rpc.Filter { @Override default org.apache.dubbo.rpc.Result invoke(org.apache.dubbo.rpc.Invoker invoker, org.apache.dubbo.rpc.Invocation invocation) - throws org.apache.dubbo.rpc.RpcException { + throws org.apache.dubbo.rpc.RpcException { Result invokeResult = invoke(new Invoker.CompatibleInvoker<>(invoker), new Invocation.CompatibleInvocation(invocation)); @@ -38,6 +41,10 @@ public interface Filter extends org.apache.dubbo.rpc.Filter { AsyncRpcResult asyncRpcResult = AsyncRpcResult.newDefaultAsyncResult(invocation); asyncRpcResult.setValue(invokeResult.getValue()); asyncRpcResult.setException(invokeResult.getException()); + Map attachments = invokeResult.getAttachments(); + if (!(attachments instanceof AttachmentsAdapter.ObjectToStringMap)) { + asyncRpcResult.setAttachments(attachments); + } asyncRpcResult.setObjectAttachments(invokeResult.getObjectAttachments()); return asyncRpcResult; diff --git a/dubbo-compatible/src/main/java/com/alibaba/dubbo/rpc/Result.java b/dubbo-compatible/src/main/java/com/alibaba/dubbo/rpc/Result.java index 009ee707c2..040736647a 100644 --- a/dubbo-compatible/src/main/java/com/alibaba/dubbo/rpc/Result.java +++ b/dubbo-compatible/src/main/java/com/alibaba/dubbo/rpc/Result.java @@ -64,6 +64,16 @@ public interface Result extends org.apache.dubbo.rpc.Result { return null; } + + /** + * @see com.alibaba.dubbo.rpc.Result#getValue() + * @deprecated Replace to getValue() + */ + @Deprecated + default Object getResult() { + return getValue(); + } + class CompatibleResult implements Result { private org.apache.dubbo.rpc.Result delegate;