diff --git a/spring-boot-project/spring-boot-devtools/src/main/java/org/springframework/boot/devtools/restart/RestartApplicationListener.java b/spring-boot-project/spring-boot-devtools/src/main/java/org/springframework/boot/devtools/restart/RestartApplicationListener.java index 60112d60f00..6291d8a3dad 100644 --- a/spring-boot-project/spring-boot-devtools/src/main/java/org/springframework/boot/devtools/restart/RestartApplicationListener.java +++ b/spring-boot-project/spring-boot-devtools/src/main/java/org/springframework/boot/devtools/restart/RestartApplicationListener.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2017 the original author or authors. + * Copyright 2012-2018 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -68,17 +68,16 @@ public class RestartApplicationListener if (enabled == null || Boolean.parseBoolean(enabled)) { String[] args = event.getArgs(); DefaultRestartInitializer initializer = new DefaultRestartInitializer(); - boolean restartOnInitialize = true; - if (AgentReloader.isActive()) { + boolean restartOnInitialize = !AgentReloader.isActive(); + if (!restartOnInitialize) { logger.info( "Restart disabled due to an agent-based reloader being active"); - restartOnInitialize = false; } Restarter.initialize(args, false, initializer, restartOnInitialize); } else { logger.info("Restart disabled due to System property '" + ENABLED_PROPERTY - + "' set to false"); + + "' being set to false"); Restarter.disable(); } } diff --git a/spring-boot-project/spring-boot-devtools/src/test/java/org/springframework/boot/devtools/restart/RestartApplicationListenerTests.java b/spring-boot-project/spring-boot-devtools/src/test/java/org/springframework/boot/devtools/restart/RestartApplicationListenerTests.java index 6b89913decd..152bdd2cbc1 100644 --- a/spring-boot-project/spring-boot-devtools/src/test/java/org/springframework/boot/devtools/restart/RestartApplicationListenerTests.java +++ b/spring-boot-project/spring-boot-devtools/src/test/java/org/springframework/boot/devtools/restart/RestartApplicationListenerTests.java @@ -20,6 +20,7 @@ import java.util.List; import org.junit.After; import org.junit.Before; +import org.junit.Rule; import org.junit.Test; import org.springframework.boot.SpringApplication; @@ -27,6 +28,7 @@ import org.springframework.boot.context.event.ApplicationFailedEvent; import org.springframework.boot.context.event.ApplicationPreparedEvent; import org.springframework.boot.context.event.ApplicationReadyEvent; import org.springframework.boot.context.event.ApplicationStartingEvent; +import org.springframework.boot.test.rule.OutputCapture; import org.springframework.context.ConfigurableApplicationContext; import org.springframework.core.Ordered; import org.springframework.test.util.ReflectionTestUtils; @@ -47,6 +49,9 @@ public class RestartApplicationListenerTests { private static final String[] ARGS = new String[] { "a", "b", "c" }; + @Rule + public final OutputCapture output = new OutputCapture(); + @Before @After public void cleanup() { @@ -81,8 +86,11 @@ public class RestartApplicationListenerTests { @Test public void disableWithSystemProperty() { System.setProperty(ENABLED_PROPERTY, "false"); + this.output.reset(); testInitialize(false); assertThat(Restarter.getInstance()).hasFieldOrPropertyWithValue("enabled", false); + assertThat(this.output.toString()) + .contains("Restart disabled due to System property"); } private void testInitialize(boolean failed) {