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 fe2f84107e61..6969c99e61ae 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-2020 the original author or authors. + * Copyright 2012-2021 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. @@ -83,12 +83,11 @@ protected boolean isDevelopmentClassLoader(ClassLoader classLoader) { } if (restartInitializer != null) { String[] args = event.getArgs(); - DefaultRestartInitializer initializer = new DefaultRestartInitializer(); boolean restartOnInitialize = !AgentReloader.isActive(); if (!restartOnInitialize) { logger.info("Restart disabled due to an agent-based reloader being active"); } - Restarter.initialize(args, false, initializer, restartOnInitialize); + Restarter.initialize(args, false, restartInitializer, restartOnInitialize); } else { logger.info(LogMessage.format("Restart disabled due to System property '%s' being set to false", diff --git a/spring-boot-project/spring-boot-devtools/src/main/java/org/springframework/boot/devtools/restart/SilentExitExceptionHandler.java b/spring-boot-project/spring-boot-devtools/src/main/java/org/springframework/boot/devtools/restart/SilentExitExceptionHandler.java index 065a3f0499ff..760ce13798d2 100644 --- a/spring-boot-project/spring-boot-devtools/src/main/java/org/springframework/boot/devtools/restart/SilentExitExceptionHandler.java +++ b/spring-boot-project/spring-boot-devtools/src/main/java/org/springframework/boot/devtools/restart/SilentExitExceptionHandler.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2019 the original author or authors. + * Copyright 2012-2021 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. @@ -17,6 +17,7 @@ package org.springframework.boot.devtools.restart; import java.lang.Thread.UncaughtExceptionHandler; +import java.lang.reflect.InvocationTargetException; import java.util.Arrays; /** @@ -35,7 +36,8 @@ class SilentExitExceptionHandler implements UncaughtExceptionHandler { @Override public void uncaughtException(Thread thread, Throwable exception) { - if (exception instanceof SilentExitException) { + if (exception instanceof SilentExitException || (exception instanceof InvocationTargetException + && ((InvocationTargetException) exception).getTargetException() instanceof SilentExitException)) { if (isJvmExiting(thread)) { preventNonZeroExitCode(); }