Break point à" throw new SilentExitException () " dans Eclipse + Spring Boot

chaque fois que j'exécute mon projet de démarrage en mode débogage dans Eclipse IDE (Spring Tool Suite), le thread s'arrête à la ligne "throw new SilentExitException();" même sans point de rupture.

une solution pour éviter ce problème?

org.springframework.démarrage.devtools.redémarrer.SilentExitExceptionHandler.exitCurrentThread () (ligne 53):

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

cela commence à se produire après la mise à niveau à 1.3.0 Milestones.

Suite D'Outils De Printemps Version: 3.7.0.PUBLIER Numéro De Vente: 201506290649 Plateforme: Eclipse Luna SR2 (4.4.2)

41
demandé sur Bruno De Freitas Barros 2015-09-25 00:04:30

2 réponses

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

pour l'instant, vous pouvez basculer la case "suspend execution on uncaught exceptions" dans Java -> Debug preferences pour l'empêcher de se produire.

68
répondu Phil Webb 2015-09-25 18:09:21

comme Eclipse sur le mode de débogage permet déjà un hotpatching limité, je trouve que le reloader est contre-productif la plupart du temps et j'ai donc décidé de le désactiver par:

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

puisque cette exception est lancée par le reloader, cela résout aussi ce problème. Notez que vous devrez utiliser le System.setProperty méthode au lieu de paramètre application.properties.

3
répondu RichN 2018-03-28 07:10:04