Bug 513388: [UnitTest] ConcurrentModificationException in getStatus()
Change-Id: I8db30e9872eff04218a8756adefe0ae5d1e5e2d3
diff --git a/plugins/org.eclipse.ease.modules.unittest/src/org/eclipse/ease/modules/unittest/components/Test.java b/plugins/org.eclipse.ease.modules.unittest/src/org/eclipse/ease/modules/unittest/components/Test.java
index a65fba1..b2fcab6 100644
--- a/plugins/org.eclipse.ease.modules.unittest/src/org/eclipse/ease/modules/unittest/components/Test.java
+++ b/plugins/org.eclipse.ease.modules.unittest/src/org/eclipse/ease/modules/unittest/components/Test.java
@@ -65,7 +65,7 @@
status = TestStatus.PASS;
// merge status of own messages
- for (final TestResult message : getMessages())
+ for (final TestResult message : new ArrayList<>(getMessages()))
status = status.merge(message.getStatus());
return status;
diff --git a/plugins/org.eclipse.ease.modules.unittest/src/org/eclipse/ease/modules/unittest/components/TestComposite.java b/plugins/org.eclipse.ease.modules.unittest/src/org/eclipse/ease/modules/unittest/components/TestComposite.java
index 5a839a7..a0f0d74 100644
--- a/plugins/org.eclipse.ease.modules.unittest/src/org/eclipse/ease/modules/unittest/components/TestComposite.java
+++ b/plugins/org.eclipse.ease.modules.unittest/src/org/eclipse/ease/modules/unittest/components/TestComposite.java
@@ -30,7 +30,7 @@
private IScriptEngine fEngine = null;
- private final List<Test> fTests = new LinkedList<Test>();
+ private final List<Test> fTests = new LinkedList<>();
private Test fCurrentTest = null;
@@ -45,11 +45,11 @@
TestStatus status = super.getStatus();
// merge status of tests
- for (final Test test : getTests())
+ for (final Test test : new ArrayList<>(getTests()))
status = status.merge(test.getStatus());
// merge status of child elements
- for (final TestEntity child : getChildren())
+ for (final TestEntity child : new ArrayList<>(getChildren()))
status = status.merge(child.getStatus());
return status;
@@ -111,7 +111,7 @@
}
public List<Test> getTests() {
- final List<Test> result = new ArrayList<Test>();
+ final List<Test> result = new ArrayList<>();
synchronized (fTests) {
for (final Test test : fTests) {