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

NullPointerException happened during evaluating an EL expression

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Normal Normal
    • 10.0.0, 9.6.3
    • 8.6.2.1, 9.6.1
    • None
    • Security Level: Jimmy

      Steps to Reproduce

      the zul

      <zk>
          <include src="${'empty.zul'}"/>
      </zk>
      

      This is a way to simulate multi-threading

      set 2 breakpoints

      breakpoint A
      org.zkoss.zk.xel.ExValue: 93

      breakpoint B
      ExValue: 110

      Suspend by thread

      Steps

      1. visit zul with chrome and stop at breakpoint A. This is thread A.
      2. visit zul with another browser (firefox) and stop at breakpoint B, step to line 111. This is thread B.
      3. let thread A step one line to set _expr = null
      4. let thread B run eval.evaluate()

      Current Result

      9.6.1
      java.lang.NullPointerException
      org.zkoss.zk.xel.impl.SimpleEvaluator.evaluate(SimpleEvaluator.java:70)
      org.zkoss.zk.ui.metainfo.AbstractEvalRef.evaluate(AbstractEvalRef.java:46)
      org.zkoss.zk.xel.ExValue.getValue(ExValue.java:111)
      org.zkoss.zk.ui.metainfo.Property.getValue(Property.java:138)
      org.zkoss.zk.ui.metainfo.Property.assign0(Property.java:272)
      org.zkoss.zk.ui.metainfo.Property.assign(Property.java:174)
      org.zkoss.zk.ui.metainfo.ComponentInfo.applyProperties(ComponentInfo.java:742)
      org.zkoss.zk.ui.impl.AbstractUiFactory.newComponent(AbstractUiFactory.java:150)
      org.zkoss.zk.ui.impl.UiEngineImpl.execCreateChild0(UiEngineImpl.java:921)
      org.zkoss.zk.ui.impl.UiEngineImpl.execCreateChild(UiEngineImpl.java:891)
      org.zkoss.zk.ui.impl.UiEngineImpl.execCreate0(UiEngineImpl.java:778)
      org.zkoss.zk.ui.impl.UiEngineImpl.execCreateChild(UiEngineImpl.java:838)
      org.zkoss.zk.ui.impl.UiEngineImpl.execCreate0(UiEngineImpl.java:796)
      org.zkoss.zk.ui.impl.UiEngineImpl.execCreate(UiEngineImpl.java:742)
      org.zkoss.zk.ui.impl.UiEngineImpl.execNewPage0(UiEngineImpl.java:463)
      org.zkoss.zk.ui.impl.UiEngineImpl.execNewPage(UiEngineImpl.java:371)
      org.zkoss.zk.ui.http.DHtmlLayoutServlet.process(DHtmlLayoutServlet.java:220)
      org.zkoss.zk.ui.http.DHtmlLayoutServlet.doGet(DHtmlLayoutServlet.java:146)

      8.6.2.1
      java.lang.NullPointerException
      at org.zkoss.zk.xel.impl.SimpleEvaluator.evaluate(SimpleEvaluator.java:68)
      at org.zkoss.zk.ui.metainfo.AbstractEvalRef.evaluate(AbstractEvalRef.java:46)
      at org.zkoss.zk.xel.ExValue.getValue(ExValue.java:111)
      at org.zkoss.zk.ui.metainfo.Property.getValue(Property.java:138)
      at org.zkoss.zk.ui.metainfo.Property.assign0(Property.java:272)
      at org.zkoss.zk.ui.metainfo.Property.assign(Property.java:174)
      at org.zkoss.zk.ui.metainfo.ComponentInfo.applyProperties(ComponentInfo.java:742)
      at org.zkoss.zk.ui.impl.AbstractUiFactory.newComponent(AbstractUiFactory.java:146)
      at org.zkoss.zk.ui.impl.UiEngineImpl.execCreateChild0(UiEngineImpl.java:918)
      at org.zkoss.zk.ui.impl.UiEngineImpl.execCreateChild(UiEngineImpl.java:888)
      at org.zkoss.zk.ui.impl.UiEngineImpl.execCreate0(UiEngineImpl.java:775)
      at org.zkoss.zk.ui.impl.UiEngineImpl.execCreate(UiEngineImpl.java:739)
      at org.zkoss.zk.ui.impl.UiEngineImpl.execCreateChild0(UiEngineImpl.java:933)
      at org.zkoss.zk.ui.impl.UiEngineImpl.execCreateChild(UiEngineImpl.java:888)
      at org.zkoss.zk.ui.impl.UiEngineImpl.execCreate0(UiEngineImpl.java:775)
      at org.zkoss.zk.ui.impl.UiEngineImpl.execCreateChild(UiEngineImpl.java:835)
      at org.zkoss.zk.ui.impl.UiEngineImpl.execCreate0(UiEngineImpl.java:793)
      at org.zkoss.zk.ui.impl.UiEngineImpl.execCreate(UiEngineImpl.java:739)
      at org.zkoss.zk.ui.impl.UiEngineImpl.execNewPage0(UiEngineImpl.java:460)
      at org.zkoss.zk.ui.impl.UiEngineImpl.execNewPage(UiEngineImpl.java:368)
      at org.zkoss.zk.ui.http.DHtmlLayoutServlet.process(DHtmlLayoutServlet.java:215)
      at org.zkoss.zk.ui.http.DHtmlLayoutServlet.doGet(DHtmlLayoutServlet.java:140

      Expected Result

      no exception

      Debug Information

      • the real case is web testing with many parallel requests, randomly happen

      Workaround

        1. breakpointA.jpg
          breakpointA.jpg
          33 kB
        2. breakpointB.jpg
          breakpointB.jpg
          16 kB
        3. Property.java
          13 kB
        4. thread.jpg
          thread.jpg
          14 kB

            DevChu DevChu
            hawk hawk
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: