diff --git a/integration-test/src/test/java/org/airsonic/test/cucumber_hooks/docker/DynamicDockerHook.java b/integration-test/src/test/java/org/airsonic/test/cucumber_hooks/docker/DynamicDockerHook.java index 4c08de5d..579a1f1a 100644 --- a/integration-test/src/test/java/org/airsonic/test/cucumber_hooks/docker/DynamicDockerHook.java +++ b/integration-test/src/test/java/org/airsonic/test/cucumber_hooks/docker/DynamicDockerHook.java @@ -81,6 +81,7 @@ public class DynamicDockerHook implements AirsonicServer, EnvironmentAware, Init .build(); final String name = "airsonic-it-" + RandomStringUtils.randomAlphabetic(10); + boolean isException = false; try { final ContainerCreation containerCreate = docker.createContainer(config, name); containerId = containerCreate.id(); @@ -109,6 +110,7 @@ public class DynamicDockerHook implements AirsonicServer, EnvironmentAware, Init break; } else { logger.trace("Container ("+name+") never became ready within max wait time"); + isException = true; throw new RuntimeException("Container ("+name+") not ready"); } } @@ -118,10 +120,16 @@ public class DynamicDockerHook implements AirsonicServer, EnvironmentAware, Init String ipAddress = next.getValue().ipAddress(); serverUri = "http://" + ipAddress + ":" + dockerPort; } catch(Exception e) { + isException = true; throw new RuntimeException("Could not determine container ("+name+") address", e); } } catch (DockerException | InterruptedException e) { + isException = true; throw new RuntimeException(e); + } finally { + if(isException){ + stopServer(); + } } }