Question Point d'arrêt à "Lancer un nouveau SilentExitException ()" dans Eclipse + Spring Boot


Chaque fois que je lance mon projet Spring Boot sur le mode de débogage dans Eclipse IDE (Spring Tool Suite), le thread s'arrête à "jeter une nouvelle SilentExitException ();" ligne même sans point d'arrêt.

Une solution pour éviter ce comportement?

org.springframework.boot.devtools.restart.SilentExitExceptionHandler.exitCurrentThread () (ligne 53):

public static void exitCurrentThread() {
    throw new SilentExitException();
}

Cela commence après la mise à niveau vers la version 1.3.0.

Suite d'outils de printemps Version: 3.7.0.RELEASE Id de build: 201506290649 Plate-forme: Eclipse Luna SR2 (4.4.2)


40
2017-09-24 21:04


origine


Réponses:


C'est malheureusement un problème connu avec le nouveau spring-boot-devtools module (voir https://github.com/spring-projects/spring-boot/issues/3100). Nous utilisons cette astuce pour tuer le thread principal afin de pouvoir le remplacer par une version rechargeable. Jusqu'à présent, je n'ai pas trouvé de moyen d'empêcher le point d'arrêt de débogage de se déclencher.

Pour le moment, vous pouvez activer la case à cocher "Suspendre l’exécution des exceptions non capturées" dans Java -> Préférences de débogage pour éviter qu’elle ne se produise.


66
2017-09-25 18:09



Comme le mode Eclipse on Debug permet déjà un hot-rattrapage limité, je trouve que le rechargeur est contre-productif la plupart du temps et j'ai donc décidé de le désactiver en:

System.setProperty("spring.devtools.restart.enabled", "false");

Référence: https://docs.spring.io/spring-boot/docs/current/reference/html/using-boot-devtools.html#using-boot-devtools-restart-disable

Comme cette exception est lancée par le rechargeur, cela résout également ce problème. Notez que vous devrez utiliser le System.setProperty méthode au lieu de la mettre en application.properties.


3
2018-03-28 07:10