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 <[email protected]>
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 {