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() {}