From 73f166e2585f5294a37401b99f2947f918fcaf82 Mon Sep 17 00:00:00 2001 From: jason Date: Fri, 12 Apr 2019 10:23:21 +0800 Subject: [PATCH] Make ClusterNodeTest.testGetOrCreateOriginNodeMultiThread stable --- .../java/com/alibaba/csp/sentinel/node/ClusterNodeTest.java | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/sentinel-core/src/test/java/com/alibaba/csp/sentinel/node/ClusterNodeTest.java b/sentinel-core/src/test/java/com/alibaba/csp/sentinel/node/ClusterNodeTest.java index f16db1af..e900cea9 100644 --- a/sentinel-core/src/test/java/com/alibaba/csp/sentinel/node/ClusterNodeTest.java +++ b/sentinel-core/src/test/java/com/alibaba/csp/sentinel/node/ClusterNodeTest.java @@ -23,7 +23,6 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; -import java.util.Random; import java.util.Set; import java.util.concurrent.Callable; import java.util.concurrent.ConcurrentHashMap; @@ -81,8 +80,6 @@ public class ClusterNodeTest { // Here we need a thread-safe concurrent set (created from ConcurrentHashMap). final Set createdNodes = Collections.newSetFromMap(new ConcurrentHashMap()); - final Random random = new Random(); - // 10 threads, 3 origins, 20 tasks (calling 20 times of ClusterNode#getOrCreateOriginNode concurrently) final ExecutorService es = Executors.newFixedThreadPool(10); final List origins = Arrays.asList("origin1", "origin2", "origin3"); @@ -91,11 +88,12 @@ public class ClusterNodeTest { List> tasks = new ArrayList>(taskCount); for (int i = 0; i < taskCount; i++) { + final int index = i % origins.size(); tasks.add(new Callable() { @Override public Object call() throws Exception { // one task call one times of ClusterNode#getOrCreateOriginNode - Node node = clusterNode.getOrCreateOriginNode(origins.get(random.nextInt(origins.size()))); + Node node = clusterNode.getOrCreateOriginNode(origins.get(index)); // add the result node to the createdNodes set createdNodes.add(node); latch.countDown();