Skip to content

Commit 7aede81

Browse files
authored
Fix unexpected interuption of environment clean up in selenium tests (eclipse-che#7003)
1 parent 5bb8f4f commit 7aede81

2 files changed

Lines changed: 14 additions & 3 deletions

File tree

selenium/che-selenium-core/src/main/java/org/eclipse/che/selenium/core/inject/SeleniumTestHandler.java

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
import java.util.Optional;
3636
import java.util.Set;
3737
import java.util.concurrent.ConcurrentHashMap;
38+
import java.util.concurrent.atomic.AtomicBoolean;
3839
import java.util.stream.Stream;
3940
import javax.annotation.PreDestroy;
4041
import javax.inject.Named;
@@ -104,6 +105,8 @@ public abstract class SeleniumTestHandler
104105

105106
private final Map<Long, Object> runningTests = new ConcurrentHashMap<>();
106107

108+
private static AtomicBoolean isCleanUpCompleted = new AtomicBoolean();
109+
107110
@Override
108111
public void onTestStart(ITestResult result) {}
109112

@@ -157,7 +160,9 @@ private void checkWebDriverSessionCreation() {
157160
}
158161

159162
@Override
160-
public void onFinish(ISuite suite) {}
163+
public void onFinish(ISuite suite) {
164+
shutdown();
165+
}
161166

162167
@Override
163168
public void beforeInvocation(IInvokedMethod method, ITestResult testResult) {
@@ -346,7 +351,11 @@ private void dumpHtmlCodeFromTheCurrentPage(ITestResult result, SeleniumWebDrive
346351
}
347352

348353
/** Cleans up test environment. */
349-
private void shutdown() {
354+
public void shutdown() {
355+
if (isCleanUpCompleted.get()) {
356+
return;
357+
}
358+
350359
LOG.info("Cleaning up test environment...");
351360

352361
for (Object testInstance : runningTests.values()) {
@@ -360,6 +369,8 @@ private void shutdown() {
360369
if (defaultTestUser != null) {
361370
defaultTestUser.delete();
362371
}
372+
373+
isCleanUpCompleted.set(true);
363374
}
364375

365376
/** Returns list of parent modules */

selenium/che-selenium-core/src/main/java/org/eclipse/che/selenium/core/workspace/TestWorkspaceProviderImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ public void shutdown() {
141141
LOG.info("Workspace threads pool is terminated");
142142
}
143143
LOG.info("Destroy remained workspaces: {}.", extractWorkspaceInfo());
144-
testWorkspaceQueue.forEach(TestWorkspace::delete);
144+
testWorkspaceQueue.parallelStream().forEach(TestWorkspace::delete);
145145

146146
if (isInterrupted) {
147147
Thread.currentThread().interrupt();

0 commit comments

Comments
 (0)