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

global command causes NPE after rerendering component containing forEach with dynamic templates

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Major Major
    • None
    • 10.1.0
    • None
    • Security Level: Jimmy
    • None

      Steps to Reproduce

      1. click 'add' in row 2 -> appends an item in row 3
      2. click 'add' in row 1 -> inserts an item in row 2
      3. click 'refresh' -> causes NPE during seemingly unrelated global command invocation

      Current Result

      java.lang.RuntimeException: doGlobalCommand comp=[<Span zUSQv1>],command=[someGlobalCommand]
      at org.zkoss.bind.impl.BinderImpl.doGlobalCommand(BinderImpl.java:1876) ~[zkbind-10.1.0-jakarta.jar:10.1.0-migrated-1.0.0]
      at org.zkoss.bind.impl.BinderImpl$QueueListener.onEvent(BinderImpl.java:431) ~[zkbind-10.1.0-jakarta.jar:10.1.0-migrated-1.0.0]
      at org.zkoss.zk.ui.event.impl.DesktopEventQueue$QueueListener.onEvent(DesktopEventQueue.java:168) ~[zk-10.1.0-jakarta.jar:10.1.0-migrated-1.0.0]
      at org.zkoss.zk.ui.AbstractComponent.onEvent(AbstractComponent.java:3171) ~[zk-10.1.0-jakarta.jar:10.1.0-migrated-1.0.0]
      at org.zkoss.zk.ui.AbstractComponent.service(AbstractComponent.java:3141) ~[zk-10.1.0-jakarta.jar:10.1.0-migrated-1.0.0]
      at org.zkoss.zk.ui.AbstractComponent.service(AbstractComponent.java:3083) ~[zk-10.1.0-jakarta.jar:10.1.0-migrated-1.0.0]
      at org.zkoss.zk.ui.impl.EventProcessor.process(EventProcessor.java:138) ~[zk-10.1.0-jakarta.jar:10.1.0-migrated-1.0.0]
      at org.zkoss.zk.ui.impl.UiEngineImpl.processEvent(UiEngineImpl.java:1898) ~[zk-10.1.0-jakarta.jar:10.1.0-migrated-1.0.0]
      at org.zkoss.zk.ui.impl.UiEngineImpl.process(UiEngineImpl.java:1670) ~[zk-10.1.0-jakarta.jar:10.1.0-migrated-1.0.0]
      at org.zkoss.zk.ui.impl.UiEngineImpl.execUpdate(UiEngineImpl.java:1332) ~[zk-10.1.0-jakarta.jar:10.1.0-migrated-1.0.0]
      at org.zkoss.zk.au.http.DHtmlUpdateServlet.process(DHtmlUpdateServlet.java:535) ~[zk-10.1.0-jakarta.jar:10.1.0-migrated-1.0.0]
      at org.zkoss.zk.au.http.DHtmlUpdateServlet.doGet(DHtmlUpdateServlet.java:408) ~[zk-10.1.0-jakarta.jar:10.1.0-migrated-1.0.0]
      at org.zkoss.zk.au.http.DHtmlUpdateServlet.doPost(DHtmlUpdateServlet.java:416) ~[zk-10.1.0-jakarta.jar:10.1.0-migrated-1.0.0]
      at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:590) ~[tomcat-embed-core-10.1.34.jar:6.0]
      at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) ~[tomcat-embed-core-10.1.34.jar:6.0]
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:195) ~[tomcat-embed-core-10.1.34.jar:10.1.34]
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.34.jar:10.1.34]
      at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) ~[tomcat-embed-websocket-10.1.34.jar:10.1.34]
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.34.jar:10.1.34]
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.34.jar:10.1.34]
      at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-6.2.1.jar:6.2.1]
      at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.2.1.jar:6.2.1]
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.34.jar:10.1.34]
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.34.jar:10.1.34]
      at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-6.2.1.jar:6.2.1]
      at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.2.1.jar:6.2.1]
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.34.jar:10.1.34]
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.34.jar:10.1.34]
      at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-6.2.1.jar:6.2.1]
      at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.2.1.jar:6.2.1]
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.34.jar:10.1.34]
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.34.jar:10.1.34]
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167) ~[tomcat-embed-core-10.1.34.jar:10.1.34]
      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) ~[tomcat-embed-core-10.1.34.jar:10.1.34]
      at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:483) ~[tomcat-embed-core-10.1.34.jar:10.1.34]
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115) ~[tomcat-embed-core-10.1.34.jar:10.1.34]
      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) ~[tomcat-embed-core-10.1.34.jar:10.1.34]
      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) ~[tomcat-embed-core-10.1.34.jar:10.1.34]
      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344) ~[tomcat-embed-core-10.1.34.jar:10.1.34]
      at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:397) ~[tomcat-embed-core-10.1.34.jar:10.1.34]
      at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) ~[tomcat-embed-core-10.1.34.jar:10.1.34]
      at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:905) ~[tomcat-embed-core-10.1.34.jar:10.1.34]
      at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1741) ~[tomcat-embed-core-10.1.34.jar:10.1.34]
      at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) ~[tomcat-embed-core-10.1.34.jar:10.1.34]
      at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190) ~[tomcat-embed-core-10.1.34.jar:10.1.34]
      at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-10.1.34.jar:10.1.34]
      at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63) ~[tomcat-embed-core-10.1.34.jar:10.1.34]
      at java.base/java.lang.Thread.run(Thread.java:840) ~[na:na]
      Caused by: java.lang.RuntimeException: doGlobalCommandExecute comp=[<Span zUSQv1>],command=[someGlobalCommand]
      at org.zkoss.bind.impl.BinderImpl.doGlobalCommandExecute(BinderImpl.java:1920) ~[zkbind-10.1.0-jakarta.jar:10.1.0-migrated-1.0.0]
      at org.zkoss.bind.impl.BinderImpl.doGlobalCommand(BinderImpl.java:1874) ~[zkbind-10.1.0-jakarta.jar:10.1.0-migrated-1.0.0]
      ... 47 common frames omitted
      Caused by: java.lang.NullPointerException: Cannot invoke "Object.getClass()" because "viewModel" is null
      at org.zkoss.bind.BindUtils.getViewModelClass(BindUtils.java:109) ~[zkbind-10.1.0-jakarta.jar:10.1.0-migrated-1.0.0]
      at org.zkoss.bind.impl.BinderImpl.doGlobalCommandExecute(BinderImpl.java:1893) ~[zkbind-10.1.0-jakarta.jar:10.1.0-migrated-1.0.0]
      ... 48 common frames omitted

      Expected Result

      no error

      Debug Information

      • this error only happens in the customer's environment, ensure after fixing ZK-5839 and ZK-5705 doesn't cause this error.

        1. ZK5887VM.java
          2 kB
        2. zk-5887.zul
          1.0 kB

            Unassigned Unassigned
            hawk hawk
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: