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

Fix recovering desktop (FailoverManager)

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Normal
    • Resolution: Fixed
    • Affects Version/s: 8.6.1
    • Fix Version/s: 8.6.2
    • Component/s: General
    • Labels:
      None
    • gh.sprint.customfield.default.name:
      ZK 8.6.2 S1

      Description

      Steps to Reproduce

      1. Add in zk.xml
        <system-config>
        	<failover-manager-class>org.zkoss.zktest.test.DumbFailoverManager</failover-manager-class>
        </system-config>
        
      2. Run zktest/test/failover.zul
      3. Click the "kill desktop but recoverable" button.
      4. Input "Tom" in the textbox.
      5. Click the "Enter" button.

      Current Result

      Lots of exceptions. The desktop recovering was broken for a long time.

      Expected Result

      The message box with "Hi, Tom" should appear instead of a timeout warning.

      Debug Information

      The desktop ID is not started with "g" anymore.
      After calling setId() in recovering, it would remove then add the desktop.
      https://github.com/zkoss/zk/blob/v8.6.1/zk/src/org/zkoss/zk/ui/impl/DesktopImpl.java#L943,L950

      When a desktop is destroying, _rque is null.
      https://github.com/zkoss/zk/blob/v8.6.1/zk/src/org/zkoss/zk/ui/impl/DesktopImpl.java#L987

      When destroying, the current execution will set as null even in recovering (which shouldn't in this case)
      https://github.com/zkoss/zk/blob/v8.6.1/zk/src/org/zkoss/zk/ui/impl/SimpleDesktopCache.java#L169

      Since this recovered desktop is not considered alive, there would be a lot of troubles.
      https://github.com/zkoss/zk/blob/v8.6.1/zk/src/org/zkoss/zk/ui/impl/DesktopImpl.java#L980

      Workaround

        Issue Links

          Activity

          Hide
          Anonymous added a comment -

          Fixed since 2019/05/09

          Show
          Anonymous added a comment - Fixed since 2019/05/09

            People

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

              Dates

              • Created:
                Updated:
                Resolved:

                Time Tracking

                Estimated:
                Original Estimate - 4 hours
                4h
                Remaining:
                Remaining Estimate - 4 hours
                4h
                Logged:
                Time Spent - Not Specified
                Not Specified

                  Agile