From d658a1a662a5345c5b9aa788e65fb373a5bb47cb Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Thu, 20 Jun 2019 14:58:32 +0200 Subject: [PATCH] fix re registration of BootstrapContextFilter after restart --- .../java/sonia/scm/boot/BootstrapContextFilter.java | 13 +++++++------ .../scm/boot/InjectionContextRestartStrategy.java | 2 +- .../boot/InjectionContextRestartStrategyTest.java | 1 - 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/scm-webapp/src/main/java/sonia/scm/boot/BootstrapContextFilter.java b/scm-webapp/src/main/java/sonia/scm/boot/BootstrapContextFilter.java index a963e95bb4..a134b44784 100644 --- a/scm-webapp/src/main/java/sonia/scm/boot/BootstrapContextFilter.java +++ b/scm-webapp/src/main/java/sonia/scm/boot/BootstrapContextFilter.java @@ -65,14 +65,14 @@ public class BootstrapContextFilter extends GuiceFilter { public void init(FilterConfig filterConfig) throws ServletException { this.filterConfig = filterConfig; - initGuice(); + initializeContext(); + } + + private void initializeContext() throws ServletException { + super.init(filterConfig); LOG.info("register for restart events"); ScmEventBus.getInstance().register(this); - } - - private void initGuice() throws ServletException { - super.init(filterConfig); listener.contextInitialized(new ServletContextEvent(filterConfig.getServletContext())); } @@ -80,6 +80,7 @@ public class BootstrapContextFilter extends GuiceFilter { @Override public void destroy() { super.destroy(); + listener.contextDestroyed(new ServletContextEvent(filterConfig.getServletContext())); ServletContextCleaner.cleanup(filterConfig.getServletContext()); } @@ -107,7 +108,7 @@ public class BootstrapContextFilter extends GuiceFilter { @Override public void initialize() { try { - BootstrapContextFilter.this.initGuice(); + BootstrapContextFilter.this.initializeContext(); } catch (ServletException e) { throw new IllegalStateException("failed to initialize guice", e); } diff --git a/scm-webapp/src/main/java/sonia/scm/boot/InjectionContextRestartStrategy.java b/scm-webapp/src/main/java/sonia/scm/boot/InjectionContextRestartStrategy.java index 29d59d733b..d0b25ba5a9 100644 --- a/scm-webapp/src/main/java/sonia/scm/boot/InjectionContextRestartStrategy.java +++ b/scm-webapp/src/main/java/sonia/scm/boot/InjectionContextRestartStrategy.java @@ -39,7 +39,7 @@ public class InjectionContextRestartStrategy implements RestartStrategy { LOG.warn("reinitialize injection context"); context.initialize(); - LOG.debug("re register injection context for events"); + LOG.debug("register injection context on new eventbus"); ScmEventBus.getInstance().register(context); } catch ( Exception ex) { LOG.error("failed to restart", ex); diff --git a/scm-webapp/src/test/java/sonia/scm/boot/InjectionContextRestartStrategyTest.java b/scm-webapp/src/test/java/sonia/scm/boot/InjectionContextRestartStrategyTest.java index 985ab978b9..81e7faa6d5 100644 --- a/scm-webapp/src/test/java/sonia/scm/boot/InjectionContextRestartStrategyTest.java +++ b/scm-webapp/src/test/java/sonia/scm/boot/InjectionContextRestartStrategyTest.java @@ -1,7 +1,6 @@ package sonia.scm.boot; import com.github.legman.Subscribe; -import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith;