Icepush problem with IE7

I run my Vaadin app using maven-jetty-plugin (version 6.1.26) and for some reason when I open and close my app with IE7 icepush breaks.

When I close IE7, after a while following exception is thrown


Exception in thread "Timer-1" java.lang.RuntimeException: org.mortbay.jetty.EofException
	at org.icepush.BlockingConnectionServer.respondIfPendingRequest(BlockingConnectionServer.java:192)
	at org.icepush.BlockingConnectionServer.run(BlockingConnectionServer.java:146)
	at java.util.TimerThread.mainLoop(Timer.java:512)
	at java.util.TimerThread.run(Timer.java:462)
Caused by: org.mortbay.jetty.EofException
	at org.mortbay.jetty.HttpGenerator.flush(HttpGenerator.java:791)
	at org.mortbay.jetty.AbstractGenerator$Output.flush(AbstractGenerator.java:569)
	at org.mortbay.jetty.HttpConnection$Output.flush(HttpConnection.java:1012)
	at org.mortbay.jetty.AbstractGenerator$Output.write(AbstractGenerator.java:655)
	at org.mortbay.jetty.AbstractGenerator$Output.write(AbstractGenerator.java:591)
	at org.icepush.http.standard.FixedSizeContentHandler.respond(FixedSizeContentHandler.java:51)
	at org.icepush.http.standard.FixedXMLContentHandler.respond(FixedXMLContentHandler.java:37)
	at org.icepush.servlet.ServletRequestResponse.respondWith(ServletRequestResponse.java:206)
	at org.icepush.servlet.ThreadBlockingAdaptingServlet$ThreadBlockingRequestResponse.respondWith(ThreadBlockingAdaptingServlet.java:66)
	at org.icepush.BlockingConnectionServer.respondIfPendingRequest(BlockingConnectionServer.java:190)
	... 3 more
Caused by: java.io.IOException: An existing connection was forcibly closed by the remote host
	at sun.nio.ch.SocketDispatcher.writev0(Native Method)
	at sun.nio.ch.SocketDispatcher.writev(SocketDispatcher.java:37)
	at sun.nio.ch.IOUtil.write(IOUtil.java:159)
	at sun.nio.ch.SocketChannelImpl.write0(SocketChannelImpl.java:365)
	at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:388)
	at java.nio.channels.SocketChannel.write(SocketChannel.java:360)
	at org.mortbay.io.nio.ChannelEndPoint.flush(ChannelEndPoint.java:233)
	at org.mortbay.io.nio.SelectChannelEndPoint.flush(SelectChannelEndPoint.java:211)
	at org.mortbay.jetty.HttpGenerator.flush(HttpGenerator.java:714)
	... 12 more

After this it doesn’t matter which browser I open my app with, push doesn’t work anymore and I keep on getting following exception


011-06-16 12:01:07.040:WARN::/myapp/add-group-member.icepush
java.lang.RuntimeException: java.lang.IllegalStateException: Timer already cancelled.
	at org.vaadin.artur.icepush.ICEPushServlet.service(ICEPushServlet.java:68)	
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
	at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:401)
	at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
	at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
	at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766)
	at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450)
	at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
	at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
	at org.mortbay.jetty.Server.handle(Server.java:326)
	at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
	at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:945)
	at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:756)
	at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
	at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
	at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410)
	at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
2011-06-16 12:01:08.008:WARN::/myapp/listen.icepush
java.lang.RuntimeException: java.lang.IllegalStateException: Timer already cancelled.
	at org.vaadin.artur.icepush.ICEPushServlet.service(ICEPushServlet.java:68)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
	at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:401)
	at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
	at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
	at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766)
	at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450)
	at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
	at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
	at org.mortbay.jetty.Server.handle(Server.java:326)
	at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
	at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:945)
	at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:756)
	at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
	at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
	at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410)
	at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)

I’m quite lost here so any kind of help is highly appreciated :slight_smile:

Gaz