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

Add safety check to DesktopEventQueue$QueueListener#onEvent

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Major Major
    • 9.6.4
    • 9.6.3
    • None
    • Security Level: Jimmy
    • None

      Steps to Reproduce

      Currently no triggerable reproducing case

      Current Result

       

      Expected Result

       Adding a check to verify that inf is not null before processing, skipping with a warning if null

      similar to how DesktopEventQueue#unsubscribe already check for not-null inf before unsubscribing:

      https://github.com/zkoss/zk/blob/master/zk/src/org/zkoss/zk/ui/event/impl/DesktopEventQueue.java#L114-L130

      Debug Information

      Reported in production, no reproduceable case available.

      During onEvent, inf is occasionally null, causing NPE:

      https://github.com/zkoss/zk/blob/master/zk/src/org/zkoss/zk/ui/event/impl/DesktopEventQueue.java#L165

      Caused by: java.lang.NullPointerException: null
          at java.base/java.util.LinkedList$ListItr.next(LinkedList.java:897)
          at org.zkoss.util.ComodifiableIterator.hasNext(ComodifiableIterator.java:49)
          at org.zkoss.zk.ui.event.impl.DesktopEventQueue$QueueListener.onEvent(DesktopEventQueue.java:163)
          at org.zkoss.zk.ui.AbstractComponent.onEvent(AbstractComponent.java:3190)
          at org.zkoss.zk.ui.AbstractComponent.service(AbstractComponent.java:3160)
          at org.zkoss.zk.ui.AbstractComponent.service(AbstractComponent.java:3102)
          at org.zkoss.zk.ui.impl.EventProcessor.process(EventProcessor.java:138)
          at org.zkoss.zk.ui.impl.UiEngineImpl.processEvent(UiEngineImpl.java:1884)
      

       

       

      Workaround

       -

            DevChu DevChu
            MDuchemin MDuchemin
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: