Browse Source

tests: EdgeImitator - fix for ConcurrentModification at AbstractEdgeTest.validateMsgsCnt:387

pull/14850/head
Sergey Matvienko 8 months ago
parent
commit
7b9c53d348
  1. 14
      application/src/test/java/org/thingsboard/server/edge/imitator/EdgeImitator.java

14
application/src/test/java/org/thingsboard/server/edge/imitator/EdgeImitator.java

@ -72,6 +72,7 @@ import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Optional; import java.util.Optional;
import java.util.concurrent.ConcurrentLinkedDeque;
import java.util.concurrent.CountDownLatch; import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ThreadLocalRandom; import java.util.concurrent.ThreadLocalRandom;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
@ -102,8 +103,13 @@ public class EdgeImitator {
@Getter @Getter
private EdgeConfiguration configuration; private EdgeConfiguration configuration;
@Getter private final ConcurrentLinkedDeque<AbstractMessage> downlinkMsgs;
private final List<AbstractMessage> downlinkMsgs;
//Returns collection copy as Unmodifiable list
//This addressing the issue: DeviceEdgeTest>AbstractEdgeTest.setupEdgeTest:212->AbstractEdgeTest.verifyEdgeConnectionAndInitialData:306->AbstractEdgeTest.validateMsgsCnt:387 » ConcurrentModification
public List<AbstractMessage> getDownlinkMsgs() {
return downlinkMsgs.stream().toList();
}
@Getter @Getter
private UplinkResponseMsg latestResponseMsg; private UplinkResponseMsg latestResponseMsg;
@ -112,7 +118,7 @@ public class EdgeImitator {
edgeRpcClient = new EdgeGrpcClient(); edgeRpcClient = new EdgeGrpcClient();
messagesLatch = new CountDownLatch(0); messagesLatch = new CountDownLatch(0);
responsesLatch = new CountDownLatch(0); responsesLatch = new CountDownLatch(0);
downlinkMsgs = new ArrayList<>(); downlinkMsgs = new ConcurrentLinkedDeque<>();
ignoredTypes = new ArrayList<>(); ignoredTypes = new ArrayList<>();
this.routingKey = routingKey; this.routingKey = routingKey;
this.routingSecret = routingSecret; this.routingSecret = routingSecret;
@ -452,7 +458,7 @@ public class EdgeImitator {
} }
public AbstractMessage getLatestMessage() { public AbstractMessage getLatestMessage() {
return downlinkMsgs.get(downlinkMsgs.size() - 1); return downlinkMsgs.peekLast();
} }
public void ignoreType(Class<? extends AbstractMessage> type) { public void ignoreType(Class<? extends AbstractMessage> type) {

Loading…
Cancel
Save