Fix flaky tests
ConcurrentModificationException might have been raised during the
execution of a test, due to the modification of the log stream during
after the iterator for the traversal was already created.
Fix by using a thread-safe array list.
Bug: Issue 13172
Change-Id: I1ae71bdbbdd7b6f342d3ee8f9584c8ba4e4524c1
diff --git a/src/test/java/com/googlesource/gerrit/plugins/metricsreportercloudwatch/MetricsReporterCloudwatchIT.java b/src/test/java/com/googlesource/gerrit/plugins/metricsreportercloudwatch/MetricsReporterCloudwatchIT.java
index 9e79351..61066cf 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/metricsreportercloudwatch/MetricsReporterCloudwatchIT.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/metricsreportercloudwatch/MetricsReporterCloudwatchIT.java
@@ -27,8 +27,8 @@
import com.google.gerrit.metrics.MetricMaker;
import com.google.inject.Inject;
import java.time.Duration;
-import java.util.ArrayList;
import java.util.Enumeration;
+import java.util.concurrent.CopyOnWriteArrayList;
import java.util.function.Supplier;
import java.util.stream.Stream;
import org.apache.log4j.AppenderSkeleton;
@@ -110,7 +110,7 @@
static class InMemoryLoggerAppender extends AppenderSkeleton {
private final Splitter metricsDatumSplitter = Splitter.on("MetricDatum");
- private ArrayList<String> logLines = new ArrayList<>();
+ private CopyOnWriteArrayList<String> logLines = new CopyOnWriteArrayList<>();
@Override
public void close() {}