Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-55113

Constructor, using other methods of the class, causes "hudson.remoting.ProxyException: com.cloudbees.groovy.cps.impl.CpsCallableInvocation"

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Duplicate
    • Icon: Minor Minor
    • workflow-cps-plugin
    • Jenkins 2.150.1, Pipeline-Groovy Plugin 2.57

      Using the constructor, which calls to another public method of the class causes "hudson.remoting.ProxyException: com.cloudbees.groovy.cps.impl.CpsCallableInvocation" on execution:

      pipeline {
          agent none
          stages {
              stage('Processing projects') {
                  agent {label 'master'}
                  steps {
                      script {
                          def example = new Example(3)
                          println(example.getNumber())
                      }
                  }
              }
          }
      }
      
      public class Example {
          private int a;
      
          public Example() {
              a = 0;
          }
      
          public Example(int base) {
              this();
              addDoubled(base);
          }
      
          public void addDoubled(int base) {
              a += base * 2;
          }
      
          public int getNumber() {
              return a;
          }
      }
      

      Using the same class without using such constructor works fine:

      pipeline {
          agent none
          stages {
              stage('Processing projects') {
                  agent {label 'master'}
                  steps {
                      script {
                          def example = new Example()
                          example.addDoubled(3)
                          println(example.getNumber())
                      }
                  }
              }
          }
      }
      
      public class Example {
          private int a;
      
          public Example() {
              a = 0;
          }
      
          public Example(int base) {
              this();
              addDoubled(base);
          }
      
          public void addDoubled(int base) {
              a += base * 2;
          }
      
          public int getNumber() {
              return a;
          }
      }
      

            Unassigned Unassigned
            alpanshin Alexandr Panshin
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: