I have a problem to restart a Vaadin application in Internet Explorer 7. When I want to restart the app after session timeout the swirling progress icon does not disappear (and the application does not start).
Details :
I build a simple Vaadin application ("
http:/myserver/VaadinRestart “) and overwrite
getSystemMessages() to redirect to a simple HTML in another application on the same webserver (”
http:/myserver/Timeout/timeout.html “) after session timeout.
On this website there is a link to the Vaadin app (”
http:/myserver/VaadinRestart?restartApplication ").
The error occurs when there is a session timeout (so
timeout.html is displayed)
AND there is a idle time after that (about one hour). When the user then clicks on the link the progress icon appears and stays and stays… There is a little yellow caution label in the browsers statusbar. It shows me the error message “permission denied”.
Sometimes a refresh (via F5 for example) helps immediately. But sometimes the user has to restart the browser.
There is no error when I do the same steps in Firefox. Unfortunately all my users are working with IE7 (policy) and the described error makes them mad.
Please note that the widgetset was compiled for all browsers.
I broke it down into this simple example (“VaadinTimeout” build by project wizard):
VaadinTimeoutApplication.java
public class VaadinTimeoutApplication extends Application {
private static final long serialVersionUID = 876537136235122920L;
public void init() {
Window mainWindow = new Window("VaadinTimeout Application");
Label label = new Label("Hello Vaadin user");
mainWindow.addComponent(label);
setMainWindow(mainWindow);
// set session timeout to 30 seconds for testing
((WebApplicationContext) getContext()).getHttpSession().setMaxInactiveInterval(30);
}
public static SystemMessages getSystemMessages() {
CustomizedSystemMessages m = new CustomizedSystemMessages();
m.setSessionExpiredCaption(null);
m.setSessionExpiredMessage(null);
m.setSessionExpiredURL("http://myhost/VaadinTimeoutApplication/timeout.html");
return m;
}
}
timeout.html
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Timeout</title>
</head>
<body>
<a href="http://myhost/VaadinTimeout/start.do?restartApplication">Restart Application</a>
</body></html>
web.xml (Minor modifications to ensure that session timeout does not start the Vaadin app)
The swirling progress indicator appears, it changes to yellow, then to red and nothing more… The application is not restarted
This only happens in IE7. Does anybody has an idea what could be wrong? Any hints for further investigations?
The users are really annoyed by this behavior. They call it the “red swirl of death” because they have to restart the browser to restart the application