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

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 9.5.0.1
    • Fix Version/s: 9.5.1, 9.5.0.2
    • Component/s: Databind 2
    • Security Level: Jimmy
    • Labels:

      Description

      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

        Attachments

          Issue Links

            Activity

              People

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

                Dates

                Created:
                Updated:
                Resolved: