From 4630c2292f232e541c3c8118100cba05e14c5129 Mon Sep 17 00:00:00 2001 From: Phillip Webb Date: Mon, 29 Oct 2018 17:42:47 -0700 Subject: [PATCH] Use random port for DevTools tests Change the `RemoteApplicationLauncher` to use a random port and also protect against an NPE if the launch fails. --- .../boot/devtools/tests/DevToolsIntegrationTests.java | 4 +++- .../boot/devtools/tests/RemoteApplicationLauncher.java | 6 +++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/spring-boot-tests/spring-boot-integration-tests/spring-boot-devtools-tests/src/test/java/org/springframework/boot/devtools/tests/DevToolsIntegrationTests.java b/spring-boot-tests/spring-boot-integration-tests/spring-boot-devtools-tests/src/test/java/org/springframework/boot/devtools/tests/DevToolsIntegrationTests.java index 199d3e6328b..0c6921167cf 100644 --- a/spring-boot-tests/spring-boot-integration-tests/spring-boot-devtools-tests/src/test/java/org/springframework/boot/devtools/tests/DevToolsIntegrationTests.java +++ b/spring-boot-tests/spring-boot-integration-tests/spring-boot-devtools-tests/src/test/java/org/springframework/boot/devtools/tests/DevToolsIntegrationTests.java @@ -80,7 +80,9 @@ public class DevToolsIntegrationTests { @After public void stopApplication() throws InterruptedException { - this.launchedApplication.stop(); + if (this.launchedApplication != null) { + this.launchedApplication.stop(); + } } @Test diff --git a/spring-boot-tests/spring-boot-integration-tests/spring-boot-devtools-tests/src/test/java/org/springframework/boot/devtools/tests/RemoteApplicationLauncher.java b/spring-boot-tests/spring-boot-integration-tests/spring-boot-devtools-tests/src/test/java/org/springframework/boot/devtools/tests/RemoteApplicationLauncher.java index 29b8b3b25da..38249f20e16 100644 --- a/spring-boot-tests/spring-boot-integration-tests/spring-boot-devtools-tests/src/test/java/org/springframework/boot/devtools/tests/RemoteApplicationLauncher.java +++ b/spring-boot-tests/spring-boot-integration-tests/spring-boot-devtools-tests/src/test/java/org/springframework/boot/devtools/tests/RemoteApplicationLauncher.java @@ -40,12 +40,12 @@ abstract class RemoteApplicationLauncher implements ApplicationLauncher { throws Exception { LaunchedJvm applicationJvm = javaLauncher.launch("app", createApplicationClassPath(), "com.example.DevToolsTestApplication", - "--server.port=12345", "--spring.devtools.remote.secret=secret"); - awaitServerPort(applicationJvm.getStandardOut()); + "--server.port=0", "--spring.devtools.remote.secret=secret"); + int port = awaitServerPort(applicationJvm.getStandardOut()); LaunchedJvm remoteSpringApplicationJvm = javaLauncher.launch( "remote-spring-application", createRemoteSpringApplicationClassPath(), RemoteSpringApplication.class.getName(), - "--spring.devtools.remote.secret=secret", "http://localhost:12345"); + "--spring.devtools.remote.secret=secret", "http://localhost:" + port); awaitRemoteSpringApplication(remoteSpringApplicationJvm.getStandardOut()); return new LaunchedApplication(new File("target/remote"), applicationJvm.getStandardOut(), applicationJvm.getStandardError(),