Uploaded image for project: 'ZK Spreadsheet'
  1. ZK Spreadsheet
  2. ZSS-641

Desktop not found if I submit the form.

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Normal
    • Resolution: Fixed
    • Affects Version/s: 3.5.0 RC
    • Fix Version/s: 3.5.0
    • Component/s: ZSS JSF
    • Labels:
      None

      Description

      in zssjsfdemo, /test/app4l_test.xhtml, click post back, will get following exception, no such issue in 3.0.2 fl + zk 6.5

      org.zkoss.zk.ui.ComponentNotFoundException: Desktop not found: z_pbm
      	at org.zkoss.zk.ui.impl.SimpleDesktopCache.getDesktop(SimpleDesktopCache.java:84)
      	at org.zkoss.zssex.ui.UpdateBridge.findDesktop(UpdateBridge.java:89)
      	at org.zkoss.zss.jsf.ui.impl.JSFComponentBase.getZKDesktop(JSFComponentBase.java:156)
      	at org.zkoss.zss.jsf.ui.impl.JSFComponentBase.getZKComponent(JSFComponentBase.java:136)
      	at org.zkoss.zss.jsf.ui.impl.JSFComponentBase.processUpdates(JSFComponentBase.java:377)
      	at org.zkoss.zss.jsf.ui.JSFSpreadsheet.processUpdates(JSFSpreadsheet.java:112)
      	at javax.faces.component.UIComponentBase.processUpdates(UIComponentBase.java:1242)
      	at javax.faces.component.UIForm.processUpdates(UIForm.java:281)
      	at javax.faces.component.UIComponentBase.processUpdates(UIComponentBase.java:1242)
      	at javax.faces.component.UIComponentBase.processUpdates(UIComponentBase.java:1242)
      	at javax.faces.component.UIViewRoot.processUpdates(UIViewRoot.java:1231)
      	at com.sun.faces.lifecycle.UpdateModelValuesPhase.execute(UpdateModelValuesPhase.java:78)
      	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
      	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
      	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
      	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
      	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
      	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
      	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
      	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
      	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
      	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
      	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
      	at java.lang.Thread.run(Thread.java:662)
      

        Issue Links

          Activity

          Hide
          dennis dennis added a comment -

          in zk 6.5, I get JSFSpreadsheet.processUpdates first , then desktop is being remove
          in zk 7, desktop removes first (client request) then get JSFSpreadsheet.processUpdates

          Show
          dennis dennis added a comment - in zk 6.5, I get JSFSpreadsheet.processUpdates first , then desktop is being remove in zk 7, desktop removes first (client request) then get JSFSpreadsheet.processUpdates
          Hide
          dennis dennis added a comment - - edited

          to compatible with zk's desktop remove time in zk 7, you have to add following filter in web.xml to keep the necessary data of spreadsheet when you using spreadsheet in a traditional jsf-postback page.

          <filter>
          	<filter-name>ObjectHolderFilter</filter-name>
          	<filter-class>org.zkoss.zss.jsf.ObjectHolderFilter</filter-class>
          </filter>
          <filter-mapping>
          	<filter-name>ObjectHolderFilter</filter-name>
          	<url-pattern>/*</url-pattern>
          </filter-mapping>
          

          url-pattern should include zk DHtmlLayoutServlet, DHtmlUpdateServlet and Faces Servlet

          this filter will automatically release the kept data(after a timeout, default 6s) when any request comes through it.
          to change the default timeout, you can just set the filter init-param millisecondToRemove with a int value

          Show
          dennis dennis added a comment - - edited to compatible with zk's desktop remove time in zk 7, you have to add following filter in web.xml to keep the necessary data of spreadsheet when you using spreadsheet in a traditional jsf-postback page. <filter> <filter-name>ObjectHolderFilter</filter-name> <filter-class>org.zkoss.zss.jsf.ObjectHolderFilter</filter-class> </filter> <filter-mapping> <filter-name>ObjectHolderFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> url-pattern should include zk DHtmlLayoutServlet, DHtmlUpdateServlet and Faces Servlet this filter will automatically release the kept data(after a timeout, default 6s) when any request comes through it. to change the default timeout, you can just set the filter init-param millisecondToRemove with a int value
          Hide
          dennis dennis added a comment -

          since 2014/4/22

          Show
          dennis dennis added a comment - since 2014/4/22

            People

            • Assignee:
              dennis dennis
              Reporter:
              dennis dennis
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: