It seems like Vaadin Push made the session expired message never appear


I have a web app that push was added to. It seems like about that time the session expired window stopped appearing. Instead the app is unresponsive to anything the user does except a page refresh.

In the javascript console there are messages saying that the wigitset knows that the server is out of session in various ways. There are a lot of them right now. I’m not sure which ones are helpful. Here are some of the messages it logs:

com.mvsc.czrmis.vaadin.widgetset.CombiningWidgetSet-0.js:6510 POST http://localhost:8080/CZRMIS_MAIN/HEARTBEAT/?v-uiId=0 410 (Gone)

WARNING: Heartbeat request returned 410

SEVERE: Session expired: null

INFO: Setting hearbeat interval to -1sec.

WARNING: Trying to send RPC from not yet started or stopped application

I have to use my own implementation of AtmosphereInterceptor to work with the application’s framework. I’ve cut session timeout and heart beat to 1 minute for troubleshooting. Here are some code snipits:

<web-app version="3.0" xmlns="" xmlns:xsi="" xsi:schemaLocation=""> <session-config> <session-timeout>1</session-timeout> </session-config> </web-app>
Vaadin servlet

@WebServlet(name = "servlet", urlPatterns = {"/*"}, asyncSupported = true, initParams = { @WebInitParam(name = "org.atmosphere.cpr.AtmosphereInterceptor", value = "com.myorg.MyAtmosphereInterceptor")}) @VaadinServletConfiguration(heartbeatInterval = 1, closeIdleSessions = true, productionMode = false, ui = MyUI.class, widgetset = "com.myorg.vaadin.widgetset.CombiningWidgetSet") public final class CzrmisVaadinServlet extends VaadinServlet implements SessionInitListener ... }

public class JpaUtilAtmosphereInterceptor implements AtmosphereInterceptor {
private Logger logger = Logger.getLogger(JpaUtilAtmosphereInterceptor.class);
private final ServerExecutionTimer serverExecutionTimer;

public JpaUtilAtmosphereInterceptor() { }

public void configure(AtmosphereConfig config) { }

public Action inspect(AtmosphereResource atmosphereResource) {
if (Util.getUser() == null) {
VaadinSession session = (VaadinSession) atmosphereResource.getRequest().getSession().getAttribute(“com.vaadin.server.VaadinSession.mysession”);
if (session != null) {
final User user = (User) session.getAttribute(USER);
if (user != null) {
return Action.CONTINUE;

public void postInspect(AtmosphereResource atmosphereResource) {
UI class

@PreserveOnRefresh @Push @Theme(MyTheme.THEME_NAME) public final class MyUI extends UI { ... all sorts of things going on here } Thanks for any help

Finally, I’m using
com.vaadin:vaadin-server:7.6.4 and the same version for the client, compler, …etc
tomcat 7 and 8 have the same problem

Solved after 7 months of working on other things. The application used a lasquery continer. This was a very old version, 2.1.15. From this the themes were brought in as a transitive dependency. Once the application was upgraded to the latest version of lazyquery continer, the session expired message appeared again.