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

simplified MVVM binding cause non-command method with same name in different VM to trigger on @global-command

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Major Major
    • 9.5.0.2, 9.5.1
    • 9.5.0.1
    • Databind 2
    • Security Level: Jimmy

      Steps to Reproduce

      Run attached files in ZK 9.5.0.1

      Click on one of the buttons

      Current Result

      The non-annotted loadValue method in VM is invoked once when retrieving command parameters
      The global-command loadValue is invoked once
      The non-annotted loadValue method in VM is invoked again with null params

      [2404]ON_EVENT	 
      [2404]  *[event]	[onClick]	<button uuid="oMYTx" id="" />
      [2404]  + POST_GLOBAL_COMMAND	 
      [2404]    *[command:post-global]	[onClick]	['loadValue']	loadValue	<button uuid="oMYTx" id="" />
      [2404]GLOBAL_COMMAND	 
      [2404]  *[command:on-command-global]	loadValue	<div uuid="oMYT0" id="" />
      [2404]  + EXECUTE	 
      [2404]    *[command:execute-global]	loadValue	<div uuid="oMYT0" id="" />	public void DuplicateCommandReproVm2.loadValue(java.lang.String,java.lang.String)
      [2404]GLOBAL_COMMAND	 
      [2404]  *[command:on-command-global]	loadValue	<window uuid="oMYT1" id="" />
      [2404]  + EXECUTE	 
      [2404]    *[command:execute-global]	loadValue	<window uuid="oMYT1" id="" />	public java.lang.String DuplicateCommandReproVm.loadValue(java.lang.String)
      

       

      Expected Result

      The non-annotted loadValue method in VM is invoked once when retrieving command parameters
      The global-command loadValue in VM2 is invoked once

      [4754]ON_EVENT	 
      [4754]  *[event]	[onClick]	<button uuid="w8FQq" id="" />
      [4754]  + POST_GLOBAL_COMMAND	 
      [4754]    *[command:post-global]	[onClick]	['loadValue']	loadValue	<button uuid="w8FQq" id="" />
      [4754]GLOBAL_COMMAND	 
      [4754]  *[command:on-command-global]	loadValue	<div uuid="w8FQ0" id="" />
      [4754]  + EXECUTE	 
      [4754]    *[command:execute-global]	loadValue	<div uuid="w8FQ0" id="" />	public void DuplicateCommandReproVm2.loadValue(java.lang.String,java.lang.String)
      [4754]GLOBAL_COMMAND	 
      [4754]  *[command:on-command-global]	loadValue	<window uuid="w8FQ1" id="" />
      [4754]  + EXECUTE	 
      

       

      Debug Information

      [2404]GLOBAL_COMMAND	 
      [2404]  *[command:on-command-global]	loadValue	<window uuid="oMYT1" id="" />
      [2404]  + EXECUTE	 
      [2404]    *[command:execute-global]	loadValue	<window uuid="oMYT1" id="" />	public java.lang.String DuplicateCommandReproVm.loadValue(java.lang.String)
      

       shouldn't be reached, since DuplicateCommandReproVm.loadValue is not annotated as a command anyway

      Workaround

       rename the duplicated command to remove the ambiguity

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

              Created:
              Updated:
              Resolved: