@Override
public void serviceInit(ServiceInitEvent event) {
final AtomicInteger sessionsCount = new AtomicInteger(0);
final VaadinServletService servletService = (VaadinServletService) event.getSource();
final VaadinServlet vaadinServlet = servletService.getServlet();
getLogger().info("Service init for {} of type {} with id {}", vaadinServlet.getServletName(), vaadinServlet.getClass().getName(),
System.identityHashCode(vaadinServlet));
final VaadinService vaadinService = event.getSource();
vaadinService.addSessionInitListener(
sessionInitEvent -> {
getLogger().info("New Vaadin session created. Current count is: {}", sessionsCount.incrementAndGet());
});
vaadinService.addSessionDestroyListener(
sessionDestroyEvent -> getLogger().info("Vaadin session destroyed. Current count is {} ", sessionsCount.decrementAndGet()));
event.getSource().addUIInitListener(uiEvent -> {
final UI ui = uiEvent.getUI();
ui.add(new OfflineBanner());
ui.addBeforeEnterListener(this::beforeEnter);
});
}
Why is the session initialized twice?
====================================================================
2020-03-15 11:16:47.420 INFO 44696 --- [nio-8080-exec-1]
c.g.a.a.s.ConfigureUIServiceInitListener : Service init for springServlet of type com.vaadin.flow.spring.SpringServlet with id 62182667
2020-03-15 11:16:47.441 INFO 44696 --- [nio-8080-exec-3]
c.vaadin.flow.spring.SpringInstantiator : The number of beans implementing 'I18NProvider' is 0. Cannot use Spring beans for I18N, falling back to the default behavior
2020-03-15 11:16:47.441 INFO 44696 --- [nio-8080-exec-3]
c.g.a.a.s.ConfigureUIServiceInitListener : New Vaadin session created. Current count is: 1
2020-03-15 11:16:47.460 INFO 44696 --- [nio-8080-exec-1]
c.g.a.a.s.ConfigureUIServiceInitListener : New Vaadin session created. Current count is: 2