Communication Problem - Red Screen

Hello,
I am a newbie to Vaadin. I am migrating an existing site to Vaadin framework and so some of the screens are built using Vaadin and others are still JSPs, am currently facing this issue. I am using Vaadin 6.6.3 version for development.

Scenario: When the session times out, and user clicks on any link/page in the application, I need to redirect him to the login page (which is a JSP). Issue is coming on the Vaadin screen where I have five tabbed views. If user clicks on any one of the tabs, after session-timeout period of 30 minutes, a red screen comes with “Communication Problem”. Once I click on this screen, the user is redirected to the login screen.

I am not sure why this red screen comes before the user is redirected to the login page inspite of setting setCommunicationErrorNotificationEnabled to false. Please help me out with this. Thanks.

In my Application class for vaadin, I am setting the system messages as:
@Override
public static Application.SystemMessages getSystemMessages(){
Application.CustomizedSystemMessages messages = new Application.CustomizedSystemMessages();
messages.setAuthenticationErrorNotificationEnabled(false);
messages.setCommunicationErrorNotificationEnabled(false);
messages.setCommunicationErrorURL(null);
messages.setCommunicationErrorMessage(null);
messages.setCommunicationErrorCaption (null);
messages.setInternalErrorNotificationEnabled(false);
messages.setOutOfSyncNotificationEnabled(false);
messages.setSessionExpiredNotificationEnabled(false);

	return messages;
}

It should work mostly like that.

The method can’t actually @Override anything because it’s static and that should result in compiler error. Please see the
API doc for getSystemMessages()
.

Setting

messages.setCommunicationErrorNotificationEnabled(false);

Is effectively equivalent to setting

messages.setCommunicationErrorMessage(null);
messages.setCommunicationErrorCaption (null);

But if you also set [tt]
messages.setCommunicationErrorURL(null);
[/tt], there won’t be a redirect, which I understood that you want.

You could give a bit nicer UX by automatically logging out and redirecting to the logout URL after user inaction. You could use Refresher for the delay, although its usage for the purpose can be a bit hairy as you have to reset it at every server request except for the Refresher request itself… Hmm.