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