remove and add objects in ListModelList with forEach causes NullPointerException

XMLWordPrintable

    • Type: Bug
    • Resolution: Fixed
    • Priority: Critical
    • 10.2.0
    • Affects Version/s: 10.2.0.fl
    • Component/s: None
    • Security Level: Jimmy
    • None

      Steps to Reproduce

      1. run the page with 10.2.0.FL.20250509
      2. click "1) move second to top" button
      3. click "2) move third to second" button

      Current Result

      java.lang.NullPointerException: Cannot invoke "java.lang.Integer.intValue()" because the return value of "java.util.Map.get(Object)" is null
      	at org.zkoss.zk.ui.HtmlShadowElement.binarySearchSubTree(HtmlShadowElement.java:965)
      	at org.zkoss.zk.ui.HtmlShadowElement.binarySearchSubTree(HtmlShadowElement.java:979)
      	at org.zkoss.zk.ui.HtmlShadowElement.queryIntersectedShadowIfAny(HtmlShadowElement.java:894)
      	at org.zkoss.zk.ui.HtmlShadowElement.beforeHostChildAdded(HtmlShadowElement.java:1038)
      	at org.zkoss.zk.ui.AbstractComponent.triggerBeforeHostChildAdded(AbstractComponent.java:4151)
      	at org.zkoss.zk.ui.AbstractComponent.insertBefore(AbstractComponent.java:1363)
      	at org.zkoss.zk.ui.impl.AbstractUiFactory.newComponent(AbstractUiFactory.java:144)
      	at org.zkoss.zk.ui.impl.UiEngineImpl.execCreateChild0(UiEngineImpl.java:930)
      	at org.zkoss.zk.ui.impl.UiEngineImpl.execCreateChild(UiEngineImpl.java:900)
      	at org.zkoss.zk.ui.impl.UiEngineImpl.execCreate0(UiEngineImpl.java:787)
      	at org.zkoss.zk.ui.impl.UiEngineImpl$TemplateImpl.create(UiEngineImpl.java:2397)
      	at org.zkoss.zuti.zul.ForEachRenderer.render(ForEachRenderer.java:88)
      	at org.zkoss.zuti.zul.ForEachListDataListener.renderModelData(ForEachListDataListener.java:128)
      	at org.zkoss.zuti.zul.ForEachListDataListener.onListModelDataChange(ForEachListDataListener.java:74)
      	at org.zkoss.zuti.zul.ForEachListDataListener.onChange(ForEachListDataListener.java:46)
      	at org.zkoss.zul.AbstractListModel.fireEvent(AbstractListModel.java:77)
      	at org.zkoss.zul.ListModelList.add(ListModelList.java:164)
      	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
      	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
      	at bsh.Reflect.invokeMethod(Reflect.java:131)
      	at bsh.Reflect.invokeObjectMethod(Reflect.java:77)
      	at bsh.Name.invokeMethod(Name.java:852)
      	at bsh.BSHMethodInvocation.eval(BSHMethodInvocation.java:69)
      	at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:96)
      	at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:41)
      	at bsh.Interpreter.eval(Interpreter.java:659)
      	at bsh.Interpreter.eval(Interpreter.java:750)
      	at org.zkoss.zk.scripting.bsh.BSHInterpreter.exec(BSHInterpreter.java:132)
      	at org.zkoss.zk.scripting.util.GenericInterpreter.interpret(GenericInterpreter.java:343)
      	at org.zkoss.zk.ui.impl.PageImpl.interpret(PageImpl.java:969)
      	at org.zkoss.zk.ui.AbstractComponent.service(AbstractComponent.java:3129)
      	at org.zkoss.zk.ui.AbstractComponent.service(AbstractComponent.java:3083)
      	at org.zkoss.zk.ui.impl.EventProcessor.process(EventProcessor.java:138)
      	at org.zkoss.zk.ui.impl.UiEngineImpl.processEvent(UiEngineImpl.java:1902)
      	at org.zkoss.zk.ui.impl.UiEngineImpl.process(UiEngineImpl.java:1674)
      	at org.zkoss.zk.ui.impl.UiEngineImpl.execUpdate(UiEngineImpl.java:1332)
      	at org.zkoss.zk.au.http.DHtmlUpdateServlet.process(DHtmlUpdateServlet.java:535)
      	at org.zkoss.zk.au.http.DHtmlUpdateServlet.doGet(DHtmlUpdateServlet.java:408)
      	at org.zkoss.zk.au.http.DHtmlUpdateServlet.doPost(DHtmlUpdateServlet.java:416)
      

      Expected Result

      no error. The result should be:

      bbb
      ccc
      aaa
      

            Assignee:
            jamson
            Reporter:
            hawk
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: