From 7446beb2da255c98778dab7ab4c789e96e2b595e Mon Sep 17 00:00:00 2001 From: Michal Karm Babacek Date: Tue, 18 Feb 2020 13:47:00 +0100 Subject: [PATCH] Pulls System.clearProperty from stuartwdouglas:graceful-shutdown --- .../quarkus/vertx/http/runtime/VertxHttpRecorder.java | 10 ++++++++++ .../src/main/java/io/quarkus/test/QuarkusUnitTest.java | 1 + 2 files changed, 11 insertions(+) diff --git a/extensions/vertx-http/runtime/src/main/java/io/quarkus/vertx/http/runtime/VertxHttpRecorder.java b/extensions/vertx-http/runtime/src/main/java/io/quarkus/vertx/http/runtime/VertxHttpRecorder.java index 7b2d5e934f98c..098171c3c01f3 100644 --- a/extensions/vertx-http/runtime/src/main/java/io/quarkus/vertx/http/runtime/VertxHttpRecorder.java +++ b/extensions/vertx-http/runtime/src/main/java/io/quarkus/vertx/http/runtime/VertxHttpRecorder.java @@ -564,6 +564,8 @@ private static class WebDeploymentVerticle extends AbstractVerticle { private final HttpServerOptions httpOptions; private final HttpServerOptions httpsOptions; private final LaunchMode launchMode; + private volatile boolean clearHttpProperty = false; + private volatile boolean clearHttpsProperty = false; public WebDeploymentVerticle(int port, int httpsPort, String host, HttpServerOptions httpOptions, HttpServerOptions httpsOptions, LaunchMode launchMode) { @@ -588,6 +590,7 @@ public void start(Future startFuture) { int actualPort = event.result().actualPort(); if (actualPort != port) { // Override quarkus.http.(test-)?port + clearHttpProperty = true; System.setProperty(launchMode == LaunchMode.TEST ? "quarkus.http.test-port" : "quarkus.http.port", String.valueOf(actualPort)); // Set in HttpOptions to output the port in the Timing class @@ -608,6 +611,7 @@ public void start(Future startFuture) { int actualPort = event.result().actualPort(); if (actualPort != httpsPort) { // Override quarkus.https.(test-)?port + clearHttpsProperty = true; System.setProperty(launchMode == LaunchMode.TEST ? "quarkus.https.test-port" : "quarkus.https.port", String.valueOf(actualPort)); // Set in HttpOptions to output the port in the Timing class @@ -623,6 +627,12 @@ public void start(Future startFuture) { @Override public void stop(Future stopFuture) { + if (clearHttpProperty) { + System.clearProperty(launchMode == LaunchMode.TEST ? "quarkus.http.test-port" : "quarkus.http.port"); + } + if (clearHttpsProperty) { + System.clearProperty(launchMode == LaunchMode.TEST ? "quarkus.https.test-port" : "quarkus.https.port"); + } httpServer.close(new Handler>() { @Override public void handle(AsyncResult event) { diff --git a/test-framework/junit5-internal/src/main/java/io/quarkus/test/QuarkusUnitTest.java b/test-framework/junit5-internal/src/main/java/io/quarkus/test/QuarkusUnitTest.java index 78a5a31f3bf01..f90e8b10a8b1b 100644 --- a/test-framework/junit5-internal/src/main/java/io/quarkus/test/QuarkusUnitTest.java +++ b/test-framework/junit5-internal/src/main/java/io/quarkus/test/QuarkusUnitTest.java @@ -441,6 +441,7 @@ public void afterAll(ExtensionContext extensionContext) throws Exception { } curatedApplication.close(); } finally { + System.clearProperty("test.url"); Thread.currentThread().setContextClassLoader(originalClassLoader); timeoutTask.cancel(); timeoutTask = null;