IVY-1628 Fix potential ConcurrentModificationException
diff --git a/src/java/org/apache/ivy/util/MessageLoggerHelper.java b/src/java/org/apache/ivy/util/MessageLoggerHelper.java
index 600a18d..1ff64b1 100644
--- a/src/java/org/apache/ivy/util/MessageLoggerHelper.java
+++ b/src/java/org/apache/ivy/util/MessageLoggerHelper.java
@@ -17,34 +17,35 @@
*/
package org.apache.ivy.util;
+import java.util.ArrayList;
import java.util.List;
public final class MessageLoggerHelper {
public static void sumupProblems(MessageLogger logger) {
- List<String> myProblems = logger.getProblems();
- if (myProblems.size() > 0) {
- List<String> myWarns = logger.getWarns();
- List<String> myErrors = logger.getErrors();
- logger.info(""); // new line on info to isolate error summary
- if (!myErrors.isEmpty()) {
- logger.log(":: problems summary ::", Message.MSG_ERR);
- } else {
- logger.log(":: problems summary ::", Message.MSG_WARN);
- }
- if (myWarns.size() > 0) {
- logger.log(":::: WARNINGS", Message.MSG_WARN);
- for (String msg : myWarns) {
- logger.log("\t" + msg + "\n", Message.MSG_WARN);
- }
- }
- if (myErrors.size() > 0) {
- logger.log(":::: ERRORS", Message.MSG_ERR);
- for (String msg : myErrors) {
- logger.log("\t" + msg + "\n", Message.MSG_ERR);
- }
- }
- logger.info("\n:: USE VERBOSE OR DEBUG MESSAGE LEVEL FOR MORE DETAILS");
+ if (logger.getProblems().isEmpty()) {
+ return;
}
+ final List<String> warns = new ArrayList<>(logger.getWarns());
+ final List<String> errors = new ArrayList<>(logger.getErrors());
+ logger.info(""); // new line on info to isolate error summary
+ if (!errors.isEmpty()) {
+ logger.log(":: problems summary ::", Message.MSG_ERR);
+ } else {
+ logger.log(":: problems summary ::", Message.MSG_WARN);
+ }
+ if (warns.size() > 0) {
+ logger.log(":::: WARNINGS", Message.MSG_WARN);
+ for (String msg : warns) {
+ logger.log("\t" + msg + "\n", Message.MSG_WARN);
+ }
+ }
+ if (errors.size() > 0) {
+ logger.log(":::: ERRORS", Message.MSG_ERR);
+ for (String msg : errors) {
+ logger.log("\t" + msg + "\n", Message.MSG_ERR);
+ }
+ }
+ logger.info("\n:: USE VERBOSE OR DEBUG MESSAGE LEVEL FOR MORE DETAILS");
}
private MessageLoggerHelper() {