define method in shared library:

      int getValue() {
          int i = 1
          i = ++i
      }
       
      

       throw exception:

       Caused by: hudson.remoting.ProxyException: groovy.lang.MissingMethodException: No signature of method: com.cloudbees.groovy.cps.Builder.prefixInc() is applicable for argument types: (java.lang.Integer, com.cloudbees.groovy.cps.impl.FunctionCallBlock) values: [83, com.cloudbees.groovy.cps.impl.FunctionCallBlock@66ea8f12]
       Possible solutions: prefixInc(int, com.cloudbees.groovy.cps.LValueBlock), prefixDec(int, com.cloudbees.groovy.cps.LValueBlock), postfixInc(int, com.cloudbees.groovy.cps.LValueBlock)
       at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:58)

      If I change

      ++i 

      to

       i + 1

      , all work perfectly.

          [JENKINS-44616] groovy increment does not work

          Yuriy Burtsev created issue -
          Yuriy Burtsev made changes -
          Environment Original: Jenkins 2.32.3
          Shared Groovy Libraries 2.7
          New: Jenkins 2.32.3, 2.46.3
          Shared Groovy Libraries 2.7, 2.8
          Yuriy Burtsev made changes -
          Description Original: int i = 1

          i = ++i

          throw exception:
          Caused by: hudson.remoting.ProxyException: groovy.lang.MissingMethodException: No signature of method: com.cloudbees.groovy.cps.Builder.prefixInc() is applicable for argument types: (java.lang.Integer, com.cloudbees.groovy.cps.impl.FunctionCallBlock) values: [83, com.cloudbees.groovy.cps.impl.FunctionCallBlock@66ea8f12]
          Possible solutions: prefixInc(int, com.cloudbees.groovy.cps.LValueBlock), prefixDec(int, com.cloudbees.groovy.cps.LValueBlock), postfixInc(int, com.cloudbees.groovy.cps.LValueBlock)
          at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:58)
          Why?
          New: define method

           
          {code:java}
          getValue() {
              int i = 1
              i = ++i
          }
           
          {code}
           
          {code:java}
           Caused by: hudson.remoting.ProxyException: groovy.lang.MissingMethodException: No signature of method: com.cloudbees.groovy.cps.Builder.prefixInc() is applicable for argument types: (java.lang.Integer, com.cloudbees.groovy.cps.impl.FunctionCallBlock) values: [83, com.cloudbees.groovy.cps.impl.FunctionCallBlock@66ea8f12]
           Possible solutions: prefixInc(int, com.cloudbees.groovy.cps.LValueBlock), prefixDec(int, com.cloudbees.groovy.cps.LValueBlock), postfixInc(int, com.cloudbees.groovy.cps.LValueBlock)
           at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:58){code}

           Why?
          Yuriy Burtsev made changes -
          Description Original: define method

           
          {code:java}
          getValue() {
              int i = 1
              i = ++i
          }
           
          {code}
           
          {code:java}
           Caused by: hudson.remoting.ProxyException: groovy.lang.MissingMethodException: No signature of method: com.cloudbees.groovy.cps.Builder.prefixInc() is applicable for argument types: (java.lang.Integer, com.cloudbees.groovy.cps.impl.FunctionCallBlock) values: [83, com.cloudbees.groovy.cps.impl.FunctionCallBlock@66ea8f12]
           Possible solutions: prefixInc(int, com.cloudbees.groovy.cps.LValueBlock), prefixDec(int, com.cloudbees.groovy.cps.LValueBlock), postfixInc(int, com.cloudbees.groovy.cps.LValueBlock)
           at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:58){code}

           Why?
          New: define method in shared library:
          {code:java}
          int getValue() {
              int i = 1
              i = ++i
          }
           
          {code}
           throw exception:
          {code:java}
           Caused by: hudson.remoting.ProxyException: groovy.lang.MissingMethodException: No signature of method: com.cloudbees.groovy.cps.Builder.prefixInc() is applicable for argument types: (java.lang.Integer, com.cloudbees.groovy.cps.impl.FunctionCallBlock) values: [83, com.cloudbees.groovy.cps.impl.FunctionCallBlock@66ea8f12]
           Possible solutions: prefixInc(int, com.cloudbees.groovy.cps.LValueBlock), prefixDec(int, com.cloudbees.groovy.cps.LValueBlock), postfixInc(int, com.cloudbees.groovy.cps.LValueBlock)
           at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:58){code}

          If I change
          {code:java}
          ++i {code}
          to
          {code:java}
           i + 1{code}
          , all work perfectly.
          Yuriy Burtsev made changes -
          Assignee New: Jesse Glick [ jglick ]
          Yuriy Burtsev made changes -
          Assignee Original: Jesse Glick [ jglick ]
          Oleg Nenashev made changes -
          Component/s New: workflow-cps-global-lib-plugin [ 21714 ]
          Component/s Original: core [ 15593 ]
          Oleg Nenashev made changes -
          Labels New: pipeline
          Oleg Nenashev made changes -
          Component/s New: workflow-cps-plugin [ 21713 ]
          Yuriy Burtsev made changes -
          Environment Original: Jenkins 2.32.3, 2.46.3
          Shared Groovy Libraries 2.7, 2.8
          New: Jenkins 2.32.3, 2.46.3
          Shared Groovy Libraries 2.7, 2.8
          Pipeline Groovy 2.33
          Yuriy Burtsev made changes -
          Environment Original: Jenkins 2.32.3, 2.46.3
          Shared Groovy Libraries 2.7, 2.8
          Pipeline Groovy 2.33
          New: Jenkins 2.32.3, 2.46.3
          Shared Groovy Libraries 2.7, 2.8
          Pipeline Groovy 2.33, 2.34

            Unassigned Unassigned
            burtsevyg Yuriy Burtsev
            Votes:
            2 Vote for this issue
            Watchers:
            9 Start watching this issue

              Created:
              Updated: