• Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Major Major
    • workflow-cps-plugin
    • None
    • workflow-cps-plugin 2.39

      Trying to run the docs example in pipeline script fails:

      def s = 'The 3 quick\nbrown 4 fox'
      def result = ''
      new StringReader(s).splitEachLine(/\d/){ parts ->
          result += "${parts[0]}_${parts[1]}|"
      }
      assert result == 'The _ quick|brown _ fox|'

      This results in

      hudson.remoting.ProxyException: Assertion failed: 
      
      assert result == 'The _ quick|brown _ fox|'
      
      	at org.codehaus.groovy.runtime.InvokerHelper.assertFailed(InvokerHelper.java:404)
      	at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.assertFailed(ScriptBytecodeAdapter.java:650)
      	at com.cloudbees.groovy.cps.impl.AssertBlock$ContinuationImpl.fail(AssertBlock.java:47)
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:498)
      	at com.cloudbees.groovy.cps.impl.ContinuationPtr$ContinuationImpl.receive(ContinuationPtr.java:72)
      	at com.cloudbees.groovy.cps.impl.ConstantBlock.eval(ConstantBlock.java:21)
      	at com.cloudbees.groovy.cps.Next.step(Next.java:83)
      	at com.cloudbees.groovy.cps.Continuable$1.call(Continuable.java:173)
      	at com.cloudbees.groovy.cps.Continuable$1.call(Continuable.java:162)
      	at org.codehaus.groovy.runtime.GroovyCategorySupport$ThreadCategoryInfo.use(GroovyCategorySupport.java:122)
      	at org.codehaus.groovy.runtime.GroovyCategorySupport.use(GroovyCategorySupport.java:261)
      	at com.cloudbees.groovy.cps.Continuable.run0(Continuable.java:162)
      	at org.jenkinsci.plugins.workflow.cps.CpsThread.runNextChunk(CpsThread.java:174)
      	at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.run(CpsThreadGroup.java:330)
      	at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.access$100(CpsThreadGroup.java:82)
      	at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:242)
      	at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:230)
      	at org.jenkinsci.plugins.workflow.cps.CpsVmExecutorService$2.call(CpsVmExecutorService.java:64)
      	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
      	at hudson.remoting.SingleLaneExecutorService$1.run(SingleLaneExecutorService.java:112)
      	at jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28)
      	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
      	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
      	at java.lang.Thread.run(Thread.java:748)
      Finished: FAILURE
      

      The value of result is just The _ quick|

          [JENKINS-46747] Reader.forEachLine only reads first line

          Andrew Bayer added a comment -

          Yeah, looks like we need to add IOGroovyMethods and ResourceGroovyMethods like StringGroovyMethods was added in JENKINS-46358.

          Andrew Bayer added a comment - Yeah, looks like we need to add IOGroovyMethods and ResourceGroovyMethods like StringGroovyMethods was added in JENKINS-46358 .

          Jesse Glick added a comment -

          Hardly “critical” when the workaround is simple: use plain old Java Platform methods.

          Jesse Glick added a comment - Hardly “critical” when the workaround is simple: use plain old Java Platform methods.

          jglick I mirrored the severity of https://issues.jenkins-ci.org/browse/JENKINS-46749
          Anyhow I think it's nasty because it fails silently.

          While we wait for this to be fixed it would be nice to have some kind of guard that will detect this and throw instead of returning the result of processing only one line.
          It is rather confusing for out users to have to remember which groovy constructs are supported and which arent

          Jakub Bochenski added a comment - jglick I mirrored the severity of https://issues.jenkins-ci.org/browse/JENKINS-46749 Anyhow I think it's nasty because it fails silently. While we wait for this to be fixed it would be nice to have some kind of guard that will detect this and throw instead of returning the result of processing only one line. It is rather confusing for out users to have to remember which groovy constructs are supported and which arent

          Jesse Glick added a comment -

          That is already a filed RFE.

          Jesse Glick added a comment - That is already a filed RFE.

            Unassigned Unassigned
            jbochenski Jakub Bochenski
            Votes:
            2 Vote for this issue
            Watchers:
            6 Start watching this issue

              Created:
              Updated: