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/21 15:57:51 UTC
[dubbo] branch 3.0 updated: [3.0] Enhance FailbackClusterInvoker
unit test (#8861)
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 3590f3d [3.0] Enhance FailbackClusterInvoker unit test (#8861)
3590f3d is described below
commit 3590f3d16fe55bd15686dd9a5d3a05d56fcd359d
Author: Wang Chengming <63...@qq.com>
AuthorDate: Tue Sep 21 23:57:43 2021 +0800
[3.0] Enhance FailbackClusterInvoker unit test (#8861)
* 1.add some FailbackClusterInvoker unit test
2.pretty code
* 1.add some FailbackClusterInvoker unit test
2.pretty code
* 1.add some FailbackClusterInvoker unit test
2.pretty code
---
.../cluster/support/FailbackClusterInvoker.java | 15 ++++----
.../support/FailbackClusterInvokerTest.java | 40 +++++++++++++++++-----
2 files changed, 39 insertions(+), 16 deletions(-)
diff --git a/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/support/FailbackClusterInvoker.java b/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/support/FailbackClusterInvoker.java
index 46fdddd..e934383 100644
--- a/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/support/FailbackClusterInvoker.java
+++ b/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/support/FailbackClusterInvoker.java
@@ -80,9 +80,9 @@ public class FailbackClusterInvoker<T> extends AbstractClusterInvoker<T> {
synchronized (this) {
if (failTimer == null) {
failTimer = new HashedWheelTimer(
- new NamedThreadFactory("failback-cluster-timer", true),
- 1,
- TimeUnit.SECONDS, 32, failbackTasks);
+ new NamedThreadFactory("failback-cluster-timer", true),
+ 1,
+ TimeUnit.SECONDS, 32, failbackTasks);
}
}
}
@@ -90,7 +90,7 @@ public class FailbackClusterInvoker<T> extends AbstractClusterInvoker<T> {
try {
failTimer.newTimeout(retryTimerTask, RETRY_FAILED_PERIOD, TimeUnit.SECONDS);
} catch (Throwable e) {
- logger.error("Failback background works error,invocation->" + invocation + ", exception: " + e.getMessage());
+ logger.error("Failback background works error, invocation->" + invocation + ", exception: " + e.getMessage());
}
}
@@ -106,7 +106,7 @@ public class FailbackClusterInvoker<T> extends AbstractClusterInvoker<T> {
return invokeWithContextAsync(invoker, invocation, consumerUrl);
} catch (Throwable e) {
logger.error("Failback to invoke method " + invocation.getMethodName() + ", wait for retry in background. Ignored exception: "
- + e.getMessage() + ", ", e);
+ + e.getMessage() + ", ", e);
if (retries > 0) {
addFailed(loadbalance, invocation, invokers, invoker, consumerUrl);
}
@@ -135,13 +135,14 @@ public class FailbackClusterInvoker<T> extends AbstractClusterInvoker<T> {
private int retryTimes = 0;
private URL consumerUrl;
- RetryTimerTask(LoadBalance loadbalance, Invocation invocation, List<Invoker<T>> invokers, Invoker<T> lastInvoker, int retries, long tick, URL consumerUrl) {
+ RetryTimerTask(LoadBalance loadbalance, Invocation invocation, List<Invoker<T>> invokers, Invoker<T> lastInvoker,
+ int retries, long tick, URL consumerUrl) {
this.loadbalance = loadbalance;
this.invocation = invocation;
this.invokers = invokers;
this.retries = retries;
this.tick = tick;
- this.lastInvoker=lastInvoker;
+ this.lastInvoker = lastInvoker;
this.consumerUrl = consumerUrl;
}
diff --git a/dubbo-cluster/src/test/java/org/apache/dubbo/rpc/cluster/support/FailbackClusterInvokerTest.java b/dubbo-cluster/src/test/java/org/apache/dubbo/rpc/cluster/support/FailbackClusterInvokerTest.java
index 032c1c7..64b3086 100644
--- a/dubbo-cluster/src/test/java/org/apache/dubbo/rpc/cluster/support/FailbackClusterInvokerTest.java
+++ b/dubbo-cluster/src/test/java/org/apache/dubbo/rpc/cluster/support/FailbackClusterInvokerTest.java
@@ -54,7 +54,7 @@ import static org.mockito.Mockito.mock;
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
public class FailbackClusterInvokerTest {
- List<Invoker<FailbackClusterInvokerTest>> invokers = new ArrayList<Invoker<FailbackClusterInvokerTest>>();
+ List<Invoker<FailbackClusterInvokerTest>> invokers = new ArrayList<>();
URL url = URL.valueOf("test://test:11/test?retries=2&failbacktasks=2");
Invoker<FailbackClusterInvokerTest> invoker = mock(Invoker.class);
RpcInvocation invocation = new RpcInvocation();
@@ -101,11 +101,36 @@ public class FailbackClusterInvokerTest {
}
@Test
+ public void testInvokeWithIllegalRetriesParam() {
+ URL url = URL.valueOf("test://test:11/test?retries=-1&failbacktasks=2");
+ Directory<FailbackClusterInvokerTest> dic = mock(Directory.class);
+ given(dic.getUrl()).willReturn(url);
+ given(dic.getConsumerUrl()).willReturn(url);
+ given(dic.getInterface()).willReturn(FailbackClusterInvokerTest.class);
+ FailbackClusterInvoker<FailbackClusterInvokerTest> invoker = new FailbackClusterInvoker<>(dic);
+ invoker.invoke(invocation);
+ Assertions.assertNull(RpcContext.getServiceContext().getInvoker());
+ DubboAppender.clear();
+ }
+
+ @Test
+ public void testInvokeWithIllegalFailbacktasksParam() {
+ URL url = URL.valueOf("test://test:11/test?retries=2&failbacktasks=-1");
+ Directory<FailbackClusterInvokerTest> dic = mock(Directory.class);
+ given(dic.getUrl()).willReturn(url);
+ given(dic.getConsumerUrl()).willReturn(url);
+ given(dic.getInterface()).willReturn(FailbackClusterInvokerTest.class);
+ FailbackClusterInvoker<FailbackClusterInvokerTest> invoker = new FailbackClusterInvoker<>(dic);
+ invoker.invoke(invocation);
+ Assertions.assertNull(RpcContext.getServiceContext().getInvoker());
+ DubboAppender.clear();
+ }
+
+ @Test
@Order(1)
public void testInvokeException() {
resetInvokerToException();
- FailbackClusterInvoker<FailbackClusterInvokerTest> invoker = new FailbackClusterInvoker<FailbackClusterInvokerTest>(
- dic);
+ FailbackClusterInvoker<FailbackClusterInvokerTest> invoker = new FailbackClusterInvoker<>(dic);
invoker.invoke(invocation);
Assertions.assertNull(RpcContext.getServiceContext().getInvoker());
DubboAppender.clear();
@@ -117,8 +142,7 @@ public class FailbackClusterInvokerTest {
resetInvokerToNoException();
- FailbackClusterInvoker<FailbackClusterInvokerTest> invoker = new FailbackClusterInvoker<FailbackClusterInvokerTest>(
- dic);
+ FailbackClusterInvoker<FailbackClusterInvokerTest> invoker = new FailbackClusterInvoker<>(dic);
Result ret = invoker.invoke(invocation);
Assertions.assertSame(result, ret);
}
@@ -139,8 +163,7 @@ public class FailbackClusterInvokerTest {
resetInvokerToNoException();
- FailbackClusterInvoker<FailbackClusterInvokerTest> invoker = new FailbackClusterInvoker<FailbackClusterInvokerTest>(
- dic);
+ FailbackClusterInvoker<FailbackClusterInvokerTest> invoker = new FailbackClusterInvoker<>(dic);
LogUtil.start();
DubboAppender.clear();
invoker.invoke(invocation);
@@ -156,8 +179,7 @@ public class FailbackClusterInvokerTest {
resetInvokerToException();
- FailbackClusterInvoker<FailbackClusterInvokerTest> invoker = new FailbackClusterInvoker<FailbackClusterInvokerTest>(
- dic);
+ FailbackClusterInvoker<FailbackClusterInvokerTest> invoker = new FailbackClusterInvoker<>(dic);
LogUtil.start();
DubboAppender.clear();
invoker.invoke(invocation);