Uploaded image for project: 'ZK'
  1. ZK
  2. ZK-1890

Can't subscribe eventqueue in desktop cleanup

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Normal Normal
    • 6.5.4
    • 6.5.3
    • ZK Update Engine
    • None

      In the application with a component that support DynamicMedia.
      when I try to unsubscribe application scope event queue in desktop cleanup, I get following exception, and the queue-listener is still linking.

      Failed to invoke test.MyComposer$2@10c789fb
      java.lang.IllegalStateException: Not in an execution
      	at org.zkoss.zk.ui.event.impl.EventQueueProviderImpl.lookup(EventQueueProviderImpl.java:43)
      	at org.zkoss.zkmax.ui.event.impl.EventQueueProviderImpl.lookup(EventQueueProviderImpl.java:58)
      	at org.zkoss.zk.ui.event.EventQueues.lookup(EventQueues.java:127)
      	at test.MyComposer$2.cleanup(MyComposer.java:53)
      	at org.zkoss.zk.ui.impl.DesktopImpl.invokeDesktopCleanups(DesktopImpl.java:1258)
      	at org.zkoss.zk.ui.impl.SimpleDesktopCache.desktopDestroyed(SimpleDesktopCache.java:115)
      	at org.zkoss.zk.ui.impl.SimpleDesktopCache.access$0(SimpleDesktopCache.java:112)
      	at org.zkoss.zk.ui.impl.SimpleDesktopCache$Cache.onExpunge(SimpleDesktopCache.java:218)
      	at org.zkoss.util.CacheMap.expunge(CacheMap.java:235)
      	at org.zkoss.util.CacheMap.doExpunge(CacheMap.java:209)
      	at org.zkoss.util.CacheMap.tryExpunge(CacheMap.java:203)
      	at org.zkoss.util.CacheMap.get(CacheMap.java:392)
      	at org.zkoss.zk.ui.impl.SimpleDesktopCache.getDesktop(SimpleDesktopCache.java:77)
      	at org.zkoss.zk.au.http.AuDynaMediar.service(AuDynaMediar.java:97)
      	at org.zkoss.zk.au.http.DHtmlUpdateServlet.doGet(DHtmlUpdateServlet.java:457)
      	at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
      	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.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.headerComplete(HttpConnection.java:928)
      	at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:549)
      	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)
      

      1.try uploaded app.
      2.set the max-desktops-per-session to 2 for easy to reproduce.
      3.open 3 tab and link to this app, one desktop will be clean up and you will see this exception

            jumperchen jumperchen
            dennis dennis
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved: