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

enter image description here

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.