diff --git a/dubbo-compatible/src/main/java/com/alibaba/dubbo/rpc/Invoker.java b/dubbo-compatible/src/main/java/com/alibaba/dubbo/rpc/Invoker.java index 5ad026f620..124b063de6 100644 --- a/dubbo-compatible/src/main/java/com/alibaba/dubbo/rpc/Invoker.java +++ b/dubbo-compatible/src/main/java/com/alibaba/dubbo/rpc/Invoker.java @@ -50,6 +50,11 @@ public interface Invoker extends org.apache.dubbo.rpc.Invoker { return invoker.getInterface(); } + @Override + public org.apache.dubbo.rpc.Result invoke(org.apache.dubbo.rpc.Invocation invocation) throws org.apache.dubbo.rpc.RpcException { + return new Result.CompatibleResult(invoker.invoke(invocation)); + } + @Override public Result invoke(Invocation invocation) throws RpcException { return new Result.CompatibleResult(invoker.invoke(invocation.getOriginal())); 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 ff690c1dfc..3a1da951c0 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 @@ -103,6 +103,11 @@ public interface Result extends org.apache.dubbo.rpc.Result { return delegate; } + @Override + public org.apache.dubbo.rpc.Result whenCompleteWithContext(BiConsumer fn) { + return delegate.whenCompleteWithContext(fn); + } + @Override public Object getValue() { return delegate.getValue(); diff --git a/dubbo-dependencies-bom/pom.xml b/dubbo-dependencies-bom/pom.xml index f999137ded..5be8a6a6fc 100644 --- a/dubbo-dependencies-bom/pom.xml +++ b/dubbo-dependencies-bom/pom.xml @@ -190,7 +190,7 @@ 2.0 1.1.0 1.22 - 3.2.0-beta.6 + 3.2.0-beta.7-SNAPSHOT diff --git a/dubbo-dependencies/dubbo-dependencies-zookeeper-curator5/pom.xml b/dubbo-dependencies/dubbo-dependencies-zookeeper-curator5/pom.xml index 34d35c4595..fa83c0c260 100644 --- a/dubbo-dependencies/dubbo-dependencies-zookeeper-curator5/pom.xml +++ b/dubbo-dependencies/dubbo-dependencies-zookeeper-curator5/pom.xml @@ -32,7 +32,7 @@ pom - 3.2.0-beta.6 + 3.2.0-beta.7-SNAPSHOT 1.1.0 5.1.0 3.7.0 diff --git a/dubbo-dependencies/dubbo-dependencies-zookeeper/pom.xml b/dubbo-dependencies/dubbo-dependencies-zookeeper/pom.xml index 49a77fd063..b89287f42c 100644 --- a/dubbo-dependencies/dubbo-dependencies-zookeeper/pom.xml +++ b/dubbo-dependencies/dubbo-dependencies-zookeeper/pom.xml @@ -32,7 +32,7 @@ pom - 3.2.0-beta.6 + 3.2.0-beta.7-SNAPSHOT 1.1.0 4.3.0 3.4.14 diff --git a/dubbo-rpc/dubbo-rpc-dubbo/src/main/java/org/apache/dubbo/rpc/protocol/dubbo/DubboInvoker.java b/dubbo-rpc/dubbo-rpc-dubbo/src/main/java/org/apache/dubbo/rpc/protocol/dubbo/DubboInvoker.java index 91d0976ac8..c5cbd1b23d 100644 --- a/dubbo-rpc/dubbo-rpc-dubbo/src/main/java/org/apache/dubbo/rpc/protocol/dubbo/DubboInvoker.java +++ b/dubbo-rpc/dubbo-rpc-dubbo/src/main/java/org/apache/dubbo/rpc/protocol/dubbo/DubboInvoker.java @@ -31,6 +31,7 @@ import org.apache.dubbo.rpc.FutureContext; import org.apache.dubbo.rpc.Invocation; import org.apache.dubbo.rpc.Invoker; import org.apache.dubbo.rpc.Result; +import org.apache.dubbo.rpc.RpcContext; import org.apache.dubbo.rpc.RpcException; import org.apache.dubbo.rpc.RpcInvocation; import org.apache.dubbo.rpc.protocol.AbstractInvoker; @@ -103,6 +104,8 @@ public class DubboInvoker extends AbstractInvoker { invocation.setAttachment(TIMEOUT_KEY, String.valueOf(timeout)); + RpcContext.getServiceContext().setRemoteAddress(currentClient.getRemoteAddress()); + Integer payload = getUrl().getParameter(PAYLOAD, Integer.class); Request request = new Request(); diff --git a/dubbo-rpc/dubbo-rpc-triple/src/main/java/org/apache/dubbo/rpc/protocol/tri/call/TripleClientCall.java b/dubbo-rpc/dubbo-rpc-triple/src/main/java/org/apache/dubbo/rpc/protocol/tri/call/TripleClientCall.java index 3eff18f6e9..f1d0a60f6a 100644 --- a/dubbo-rpc/dubbo-rpc-triple/src/main/java/org/apache/dubbo/rpc/protocol/tri/call/TripleClientCall.java +++ b/dubbo-rpc/dubbo-rpc-triple/src/main/java/org/apache/dubbo/rpc/protocol/tri/call/TripleClientCall.java @@ -80,8 +80,10 @@ public class TripleClientCall implements ClientCall, ClientStream.Listener { final Object unpacked = requestMetadata.packableMethod.parseResponse(message); listener.onMessage(unpacked); } catch (Throwable t) { - cancelByLocal(TriRpcStatus.INTERNAL.withDescription("Deserialize response failed") - .withCause(t).asException()); + TriRpcStatus status = TriRpcStatus.INTERNAL.withDescription("Deserialize response failed") + .withCause(t); + cancelByLocal(status.asException()); + listener.onClose(status,null); LOGGER.error(PROTOCOL_FAILED_RESPONSE, "", "", String.format("Failed to deserialize triple response, service=%s, method=%s,connection=%s", connectionClient, requestMetadata.service, requestMetadata.method.getMethodName()), t); } diff --git a/pom.xml b/pom.xml index b8de4ba69b..4067a15697 100644 --- a/pom.xml +++ b/pom.xml @@ -130,7 +130,7 @@ true true true - 3.2.0-beta.6 + 3.2.0-beta.7-SNAPSHOT