From ab6582f8975ad3d45aa81aa3a660fa089fd121c7 Mon Sep 17 00:00:00 2001 From: youfans <15159217975@163.com> Date: Sat, 5 Aug 2017 18:21:55 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E5=AE=9E=E9=99=85=E7=8E=AF?= =?UTF-8?q?=E5=A2=83=E4=B8=AD=E5=BC=82=E6=AD=A5=E8=B0=83=E7=94=A8ServiceA?= =?UTF-8?q?=EF=BC=8C=E8=80=8CServiceA=E4=B8=AD=E5=90=8C=E6=AD=A5=E8=B0=83?= =?UTF-8?q?=E7=94=A8ServiceB=E7=9A=84=E6=97=B6=E5=80=99=EF=BC=8C=E4=BC=9A?= =?UTF-8?q?=E5=87=BA=E7=8E=B0=E5=BC=82=E6=AD=A5=E5=B1=9E=E6=80=A7=E5=A4=9A?= =?UTF-8?q?=E4=BC=A0=E9=80=92=E4=B8=80=E6=AC=A1=E7=9A=84=E9=97=AE=E9=A2=98?= =?UTF-8?q?=EF=BC=8C=E5=8D=B3ServiceA=E4=B8=AD=E5=8E=9F=E6=9C=AC=E6=9C=9F?= =?UTF-8?q?=E6=9C=9B=E5=90=8C=E6=AD=A5=E8=B0=83=E7=94=A8ServiceB=EF=BC=8C?= =?UTF-8?q?=E5=8D=B4=E5=8F=98=E6=88=90=E5=BC=82=E6=AD=A5=E8=B0=83=E7=94=A8?= =?UTF-8?q?ServiceB=E3=80=82=E8=BF=99=E9=87=8C=E9=80=9A=E8=BF=87=E4=B8=8D?= =?UTF-8?q?=E4=BE=B5=E5=85=A5=E5=8E=9F=E6=9D=A5=E4=BB=A3=E7=A0=81=EF=BC=8C?= =?UTF-8?q?=E9=80=9A=E8=BF=87=E5=88=A9=E7=94=A8Filter=E5=9C=A8invoke?= =?UTF-8?q?=E7=9A=84=E6=97=B6=E5=80=99=E5=B0=86attachment=E4=B8=AD?= =?UTF-8?q?=E7=9A=84async=E7=9A=84=E5=B1=9E=E6=80=A7=E6=B8=85=E7=A9=BA?= =?UTF-8?q?=E6=9D=A5=E8=A7=A3=E5=86=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../alibaba/dubbo/rpc/filter/AsyncFilter.java | 19 +++++++++++++++++++ .../internal/com.alibaba.dubbo.rpc.Filter | 3 ++- yaxon-fix-bug.txt | 6 ++++++ 3 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 dubbo-rpc/dubbo-rpc-api/src/main/java/com/alibaba/dubbo/rpc/filter/AsyncFilter.java create mode 100644 yaxon-fix-bug.txt diff --git a/dubbo-rpc/dubbo-rpc-api/src/main/java/com/alibaba/dubbo/rpc/filter/AsyncFilter.java b/dubbo-rpc/dubbo-rpc-api/src/main/java/com/alibaba/dubbo/rpc/filter/AsyncFilter.java new file mode 100644 index 000000000000..e799e04bb87a --- /dev/null +++ b/dubbo-rpc/dubbo-rpc-api/src/main/java/com/alibaba/dubbo/rpc/filter/AsyncFilter.java @@ -0,0 +1,19 @@ +package com.alibaba.dubbo.rpc.filter; + +import com.alibaba.dubbo.common.Constants; +import com.alibaba.dubbo.common.extension.Activate; +import com.alibaba.dubbo.rpc.*; + +/** + * Author: 游锋锋 + * Time: 2017-08-05 15:42 + * Copyright (C) 2017 Xiamen Yaxon Networks CO.,LTD. + */ +@Activate(group = {Constants.PROVIDER}) +public class AsyncFilter implements Filter{ + @Override + public Result invoke(Invoker invoker, Invocation invocation) throws RpcException { + RpcContext.getContext().getAttachments().remove(Constants.ASYNC_KEY); + return invoker.invoke(invocation); + } +} diff --git a/dubbo-rpc/dubbo-rpc-api/src/main/resources/META-INF/dubbo/internal/com.alibaba.dubbo.rpc.Filter b/dubbo-rpc/dubbo-rpc-api/src/main/resources/META-INF/dubbo/internal/com.alibaba.dubbo.rpc.Filter index 2689465c243f..1ed08bab5058 100644 --- a/dubbo-rpc/dubbo-rpc-api/src/main/resources/META-INF/dubbo/internal/com.alibaba.dubbo.rpc.Filter +++ b/dubbo-rpc/dubbo-rpc-api/src/main/resources/META-INF/dubbo/internal/com.alibaba.dubbo.rpc.Filter @@ -11,4 +11,5 @@ exception=com.alibaba.dubbo.rpc.filter.ExceptionFilter executelimit=com.alibaba.dubbo.rpc.filter.ExecuteLimitFilter deprecated=com.alibaba.dubbo.rpc.filter.DeprecatedFilter compatible=com.alibaba.dubbo.rpc.filter.CompatibleFilter -timeout=com.alibaba.dubbo.rpc.filter.TimeoutFilter \ No newline at end of file +timeout=com.alibaba.dubbo.rpc.filter.TimeoutFilter +asyncFilter=com.alibaba.dubbo.rpc.filter.AsyncFilter \ No newline at end of file diff --git a/yaxon-fix-bug.txt b/yaxon-fix-bug.txt new file mode 100644 index 000000000000..5bf3c0b27099 --- /dev/null +++ b/yaxon-fix-bug.txt @@ -0,0 +1,6 @@ +--author:游锋锋 +--fix-bug:修复了dubbo中异步调用会多余传递一次异步属性的问题 +--fix-way:1、在dubbox\dubbo-rpc\dubbo-rpc-api\src\main\java\com\alibaba\dubbo\rpc\filter目录 + 下新增了AsyncFilter文件 + 2、并在同模块中的resource/META-INF.dubbo.internal的com.alibaba.dubbo.rpc.Filter + 文件的末尾追加asyncFilter=com.alibaba.dubbo.rpc.filter.AsyncFilter \ No newline at end of file