Breakpoint at "throw new SilentExitException()" in Eclipse + Spring Boot
As Eclipse on Debug mode already allows limited hotpatching, I find the reloader to be counterproductive most of the time and so I decided to disable it by:
System.setProperty("spring.devtools.restart.enabled", "false");
Reference: https://docs.spring.io/spring-boot/docs/current/reference/html/using-boot-devtools.html#using-boot-devtools-restart-disable
Since that exception is thrown by the reloader, this also solves this issue. Note that you'll have to use the System.setProperty
method instead of setting it in application.properties
.
Add the property as a VM argument:
-Dspring.devtools.restart.enabled=false
That way you don't have to change your code, as it is the case when using:
System.setProperty("spring.devtools.restart.enabled", "false");
This is unfortunately a know issue with the new spring-boot-devtools
module (see https://github.com/spring-projects/spring-boot/issues/3100). We use this trick to kill the main thread so that we can replace it with a re-loadable version. So far I've not found a way to prevent the debug breakpoint from triggering.
For now, you can toggle the "suspend execution on uncaught exceptions" checkbox in Java -> Debug preferences to prevent it from happening.