Communication Error Popup Not Opening

We are currently in the process of porting our application to Vaadin 7.1.0 from Vaadin 6. Originally, with Vaadin 6, we used Atmosphere and OzoneLayer to implement push.

When the server would shutdown with a client running the user would get a communication error popup letting the user know that the server was no longer available. Now that we have moved to Vaadin 7, with the built in push mechanism, the communication error does not open in this situation. The only time a popup opens is when the server is restarted with the client still running, in which case I see the SessionExpired error popup.

I can see warnings about the web socket in the javascript console but no popup. I can also see the spinner at the top right hand corner of the page go red and then disappear, like it would in 6 when the communication error popup was then shown, but now there is no popup.

I have implemented the new heartbeat stuff in my web.xml with the following additions but it seems that with or without the parameters I still do not get the popup.


     <init-param>
         <param-name>closeIdleSessions</param-name>
         <param-value>true</param-value>
     </init-param>

    <context-param>
        <param-name>heartbeatInterval</param-name>
        <param-value>30</param-value>
    </context-param>

    <session-config>
        <session-timeout>1</session-timeout>
    </session-config>

The architecture of the application is as follows:

  • Native Java Application running embedded Jetty.
  • Jetty launches several instances of Equinox OSGI in separate servlets using the Equinox servlet bridge.
  • Equinox then launches the Lunifera OSGI Vaadin bridge
  • The Lunifera OSGI Vaadin bridge then launches my Vaadin application.

Vaadin version: 7.1.0 stable
Atmosphere: 1.0.14
Jetty: 8.1.4
Equinox: 3.8.2

I have also verified that the communication error exists and is enabled by modifying the Lunifera VaadinServlet implementation.

Any help with this issue would be greatly appreciated.

I just noticed the same.

I built a very basic app with a button thattries to validate a FieldGroup.

if I start the server, then connect to the application in the browser, I see the form. If I then shut down the server bfore clicking the button, I see a white spinner in the top-right corner, but no message.

I removed the @Push annotation from the UI and tried again, and then got the expected red notification saying “Communication problem Take note of any unsaved data, and click here to continue.Invalid status code 0 (server down?)”

It only seems to fail with @Push.

back with vaadin 6 the popup worked fine with dontpush/ozone when server was shut down. ¿can you fix this?

Could you try deploying your app to an external server (not the one when you launch it from eclipse or whatever IDE you’re using). This should at least “resolve” the issue with heartbeat + push not working aka. not expiring the session.
I think that the fact that the communication problem popups don’t appear makes sense as the app holds a permanent connection to the server. This way you don’t have single communications which might fail because the server is shut down.
The app only realizes the the server is down when it restarted and you receive a new session.

Btw. I’m not an expert on this topic. It’s just an idea i had.

I am using vaadin 7.1.6 stable. But still I got the same problem. No “Communication Error” popup with push enabled. Any workarounds??

I ran into the same issue. It looks like these two open tickets are related:
http://dev.vaadin.com/ticket/11733
http://dev.vaadin.com/ticket/14121

I put comments on 14121 with some possible work arounds.