You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by al...@apache.org on 2021/09/24 05:06:25 UTC
[dubbo] branch 3.0 updated: Convert TimeoutException when invoke
timeout (#8906)
This is an automated email from the ASF dual-hosted git repository.
albumenj pushed a commit to branch 3.0
in repository https://gitbox.apache.org/repos/asf/dubbo.git
The following commit(s) were added to refs/heads/3.0 by this push:
new 5567a62 Convert TimeoutException when invoke timeout (#8906)
5567a62 is described below
commit 5567a626a52d057c6d31d192c921f9bc89341921
Author: Albumen Kevin <jh...@gmail.com>
AuthorDate: Fri Sep 24 13:06:17 2021 +0800
Convert TimeoutException when invoke timeout (#8906)
---
.../apache/dubbo/rpc/protocol/AbstractInvoker.java | 21 ++++++++++++---------
1 file changed, 12 insertions(+), 9 deletions(-)
diff --git a/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/protocol/AbstractInvoker.java b/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/protocol/AbstractInvoker.java
index 1723595..d865cb1 100644
--- a/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/protocol/AbstractInvoker.java
+++ b/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/protocol/AbstractInvoker.java
@@ -105,8 +105,8 @@ public abstract class AbstractInvoker<T> implements Invoker<T> {
this.type = type;
this.url = url;
this.attachment = attachment == null
- ? null
- : Collections.unmodifiableMap(attachment);
+ ? null
+ : Collections.unmodifiableMap(attachment);
}
private static Map<String, Object> convertAttachment(URL url, String[] keys) {
@@ -164,7 +164,7 @@ public abstract class AbstractInvoker<T> implements Invoker<T> {
// if invoker is destroyed due to address refresh from registry, let's allow the current invoke to proceed
if (isDestroyed()) {
logger.warn("Invoker for service " + this + " on consumer " + NetUtils.getLocalHost() + " is destroyed, "
- + ", dubbo version is " + Version.getVersion() + ", this invoker should not be used any longer");
+ + ", dubbo version is " + Version.getVersion() + ", this invoker should not be used any longer");
}
RpcInvocation invocation = (RpcInvocation) inv;
@@ -259,19 +259,22 @@ public abstract class AbstractInvoker<T> implements Invoker<T> {
}
} catch (InterruptedException e) {
throw new RpcException("Interrupted unexpectedly while waiting for remote result to return! method: " +
- invocation.getMethodName() + ", provider: " + getUrl() + ", cause: " + e.getMessage(), e);
+ invocation.getMethodName() + ", provider: " + getUrl() + ", cause: " + e.getMessage(), e);
} catch (ExecutionException e) {
Throwable rootCause = e.getCause();
if (rootCause instanceof TimeoutException) {
throw new RpcException(RpcException.TIMEOUT_EXCEPTION, "Invoke remote method timeout. method: " +
- invocation.getMethodName() + ", provider: " + getUrl() + ", cause: " + e.getMessage(), e);
+ invocation.getMethodName() + ", provider: " + getUrl() + ", cause: " + e.getMessage(), e);
} else if (rootCause instanceof RemotingException) {
throw new RpcException(RpcException.NETWORK_EXCEPTION, "Failed to invoke remote method: " +
- invocation.getMethodName() + ", provider: " + getUrl() + ", cause: " + e.getMessage(), e);
+ invocation.getMethodName() + ", provider: " + getUrl() + ", cause: " + e.getMessage(), e);
} else {
throw new RpcException(RpcException.UNKNOWN_EXCEPTION, "Fail to invoke remote method: " +
- invocation.getMethodName() + ", provider: " + getUrl() + ", cause: " + e.getMessage(), e);
+ invocation.getMethodName() + ", provider: " + getUrl() + ", cause: " + e.getMessage(), e);
}
+ } catch (java.util.concurrent.TimeoutException e) {
+ throw new RpcException(RpcException.TIMEOUT_EXCEPTION, "Invoke remote method timeout. method: " +
+ invocation.getMethodName() + ", provider: " + getUrl() + ", cause: " + e.getMessage(), e);
} catch (Throwable e) {
throw new RpcException(e.getMessage(), e);
}
@@ -281,8 +284,8 @@ public abstract class AbstractInvoker<T> implements Invoker<T> {
protected ExecutorService getCallbackExecutor(URL url, Invocation inv) {
ExecutorService sharedExecutor = url.getOrDefaultApplicationModel().getExtensionLoader(ExecutorRepository.class)
- .getDefaultExtension()
- .getExecutor(url);
+ .getDefaultExtension()
+ .getExecutor(url);
if (InvokeMode.SYNC == RpcUtils.getInvokeMode(getUrl(), inv)) {
return new ThreadlessExecutor(sharedExecutor);
} else {