• Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Major Major
    • None
    • Jenkins ver. 2.138.3
      Build Failure Analyzer 1.20.0
    • 1.23.0-beta-1

      Whenever the build failure analyser plug-in runs there will be several warnings in the Jenkins log "Avoid calling getLogFile on ..." because getLogFile is deprecated:

      https://javadoc.jenkins.io/plugin/workflow-job/org/jenkinsci/plugins/workflow/job/WorkflowRun.html#getLogFile--

       

      Nov 23, 2018 3:20:04 PM INFO org.jenkinsci.plugins.workflow.job.WorkflowRun finishTestWorkflow/TestWorkflow #362 completed: FAILURE
      Nov 23, 2018 3:20:04 PM WARNING org.jenkinsci.plugins.workflow.job.WorkflowRun getLogFileAvoid calling getLogFile on TestWorkflow/TestWorkflow #362
      java.lang.UnsupportedOperationException
      	at org.jenkinsci.plugins.workflow.job.WorkflowRun.getLogFile(WorkflowRun.java:1082)
      	at com.sonyericsson.jenkins.plugins.bfa.BuildFailureScanner.parseSingleLineCauses(BuildFailureScanner.java:426)
      	at com.sonyericsson.jenkins.plugins.bfa.BuildFailureScanner.access$000(BuildFailureScanner.java:77)
      	at com.sonyericsson.jenkins.plugins.bfa.BuildFailureScanner$1.run(BuildFailureScanner.java:289)
      	at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
      	at java.util.concurrent.FutureTask.run(Unknown Source)
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
      	at java.lang.Thread.run(Unknown Source)
      
      Nov 23, 2018 3:20:04 PM WARNING org.jenkinsci.plugins.workflow.job.WorkflowRun getLogFileAvoid calling getLogFile on TestWorkflow/TestWorkflow #362
      java.lang.UnsupportedOperationException
      	at org.jenkinsci.plugins.workflow.job.WorkflowRun.getLogFile(WorkflowRun.java:1082)
      	at com.sonyericsson.jenkins.plugins.bfa.model.MultilineBuildLogFailureReader.scan(MultilineBuildLogFailureReader.java:92)
      	at com.sonyericsson.jenkins.plugins.bfa.BuildFailureScanner.findIndication(BuildFailureScanner.java:451)
      	at com.sonyericsson.jenkins.plugins.bfa.BuildFailureScanner.parseIndication(BuildFailureScanner.java:393)
      	at com.sonyericsson.jenkins.plugins.bfa.BuildFailureScanner.access$100(BuildFailureScanner.java:77)
      	at com.sonyericsson.jenkins.plugins.bfa.BuildFailureScanner$2.run(BuildFailureScanner.java:306)
      	at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
      	at java.util.concurrent.FutureTask.run(Unknown Source)
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
      	at java.lang.Thread.run(Unknown Source)
      
      Nov 23, 2018 3:20:04 PM WARNING org.jenkinsci.plugins.workflow.job.WorkflowRun getLogFileAvoid calling getLogFile on TestWorkflow/TestWorkflow #362
      java.lang.UnsupportedOperationException
      	at org.jenkinsci.plugins.workflow.job.WorkflowRun.getLogFile(WorkflowRun.java:1082)
      	at com.sonyericsson.jenkins.plugins.bfa.model.MultilineBuildLogFailureReader.scan(MultilineBuildLogFailureReader.java:92)
      	at com.sonyericsson.jenkins.plugins.bfa.BuildFailureScanner.findIndication(BuildFailureScanner.java:451)
      	at com.sonyericsson.jenkins.plugins.bfa.BuildFailureScanner.parseIndication(BuildFailureScanner.java:393)
      	at com.sonyericsson.jenkins.plugins.bfa.BuildFailureScanner.access$100(BuildFailureScanner.java:77)
      	at com.sonyericsson.jenkins.plugins.bfa.BuildFailureScanner$2.run(BuildFailureScanner.java:306)
      	at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
      	at java.util.concurrent.FutureTask.run(Unknown Source)
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
      	at java.lang.Thread.run(Unknown Source)
      
      

          [JENKINS-54840] UnsupportedOperationException getLogFile

          I observed the same Exception

          java.lang.UnsupportedOperationException
                  at org.jenkinsci.plugins.workflow.job.WorkflowRun.getLogFile(WorkflowRun.java:1055)
                  at org.jvnet.hudson.plugins.groovypostbuild.GroovyPostbuildRecorder$BadgeManager.logContains(GroovyPostbuildRecorder.java:257)
          

          caused by this code:

              stage("Check warnings") {
                // check white-list stuff 
                if(manager.logContains(/.*project allows check:.*\\*\\*\\* NOT \\*\\*\\* allowed.*/)) {
                  manager.addWarningBadge("WARNING: ... *** NOT *** allowed: ....detected!")
                  manager.buildUnstable()
                }
              } 

           

          Torsten Reinhard added a comment - I observed the same Exception java.lang.UnsupportedOperationException at org.jenkinsci.plugins.workflow.job.WorkflowRun.getLogFile(WorkflowRun.java:1055) at org.jvnet.hudson.plugins.groovypostbuild.GroovyPostbuildRecorder$BadgeManager.logContains(GroovyPostbuildRecorder.java:257) caused by this code: stage( "Check warnings" ) { // check white-list stuff if (manager.logContains(/.*project allows check:.*\\*\\*\\* NOT \\*\\*\\* allowed.*/)) { manager.addWarningBadge( "WARNING: ... *** NOT *** allowed: ....detected!" ) manager.buildUnstable() } }  

          torstenreinhard: you should be able to replace "manager.logContains()" with

          if (currentBuild.rawBuild.log ==~ /(?s).*project allows check:.*\\*\\*\\* NOT \\*\\*\\* allowed.*/) {
          

          Note that this is somewhat different from using "manager.logContains()", as the manager objects internal getMatcher() method matches line after line.

          Access to getLog() must be approved by an administrator when running in a sandbox.

          Btw, the usage of "manager" to add badges/summary is deprecated and should be replaced by the badge plug-in: https://jenkins.io/doc/pipeline/steps/badge/ and https://github.com/jenkinsci/badge-plugin/blob/master/README.md

          Setting the build result without "manager" can be done by using

          currentBuild.result = "UNSTABLE"
          

          See pipeline-syntax/globals reference.

           

          Christoph Vogtländer added a comment - torstenreinhard : you should be able to replace "manager.logContains()" with if (currentBuild.rawBuild.log ==~ /(?s).*project allows check:.*\\*\\*\\* NOT \\*\\*\\* allowed.*/) { Note that this is somewhat different from using "manager.logContains()", as the manager objects internal getMatcher() method matches line after line. Access to getLog() must be approved by an administrator when running in a sandbox. Btw, the usage of "manager" to add badges/summary is deprecated and should be replaced by the badge plug-in: https://jenkins.io/doc/pipeline/steps/badge/ and https://github.com/jenkinsci/badge-plugin/blob/master/README.md Setting the build result without "manager" can be done by using currentBuild.result = "UNSTABLE" See pipeline-syntax/globals reference.  

          Jon Sten added a comment -

          Jon Sten added a comment - Looks like this issue was fixed by https://github.com/jenkinsci/build-failure-analyzer-plugin/pull/106 .

          Tim Jacomb added a comment -

          Released as 1.23.0-beta-1

          Tim Jacomb added a comment - Released as 1.23.0-beta-1

          Alexander added a comment -

          In principle i can see the very same set of messages - but maybe the root cause is a different one.
          Any hints on the culprit? Any idea on how to resolve this?

          2022-12-19 09:38:50 WARNING org.jenkinsci.plugins.workflow.job.WorkflowRun getLogFile Avoid calling getLogFile on <ProjectName>/<BranchName> #2
          java.lang.UnsupportedOperationException
              at org.jenkinsci.plugins.workflow.job.WorkflowRun.getLogFile(WorkflowRun.java:1173)
              at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
              at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
              at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
              at java.base/java.lang.reflect.Method.invoke(Method.java:566)
              at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98)
              at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
              at groovy.lang.MetaClassImpl.getProperty(MetaClassImpl.java:1845)
              at groovy.lang.MetaClassImpl.getProperty(MetaClassImpl.java:3773)
              at org.codehaus.groovy.runtime.InvokerHelper.getProperty(InvokerHelper.java:195)
              at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.getProperty(ScriptBytecodeAdapter.java:469)
              at com.cloudbees.groovy.cps.sandbox.DefaultInvoker.getProperty(DefaultInvoker.java:39)
              at com.cloudbees.groovy.cps.impl.PropertyAccessBlock.rawGet(PropertyAccessBlock.java:20)
              at com.cloudbees.groovy.cps.impl.PropertyishBlock$ContinuationImpl.get(PropertyishBlock.java:74)
              at com.cloudbees.groovy.cps.LValueBlock$GetAdapter.receive(LValueBlock.java:30)
              at com.cloudbees.groovy.cps.impl.PropertyishBlock$ContinuationImpl.fixName(PropertyishBlock.java:66)
              at jdk.internal.reflect.GeneratedMethodAccessor444.invoke(Unknown Source)
              at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
              at java.base/java.lang.reflect.Method.invoke(Method.java:566)
              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:174)
              at com.cloudbees.groovy.cps.Continuable$1.call(Continuable.java:163)
              at org.codehaus.groovy.runtime.GroovyCategorySupport$ThreadCategoryInfo.use(GroovyCategorySupport.java:136)
              at org.codehaus.groovy.runtime.GroovyCategorySupport.use(GroovyCategorySupport.java:275)
              at com.cloudbees.groovy.cps.Continuable.run0(Continuable.java:163)
              at org.jenkinsci.plugins.workflow.cps.SandboxContinuable.access$001(SandboxContinuable.java:18)
              at org.jenkinsci.plugins.workflow.cps.SandboxContinuable.run0(SandboxContinuable.java:51)
              at org.jenkinsci.plugins.workflow.cps.CpsThread.runNextChunk(CpsThread.java:187)
              at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.run(CpsThreadGroup.java:420)
              at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.access$400(CpsThreadGroup.java:95)
              at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:330)
              at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:294)
              at org.jenkinsci.plugins.workflow.cps.CpsVmExecutorService$2.call(CpsVmExecutorService.java:67)
              at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
              at hudson.remoting.SingleLaneExecutorService$1.run(SingleLaneExecutorService.java:139)
              at jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28)
              at jenkins.security.ImpersonatingExecutorService$1.run(ImpersonatingExecutorService.java:68)
              at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
              at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
              at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
              at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
              at java.base/java.lang.Thread.run(Thread.java:829)

          Alexander added a comment - In principle i can see the very same set of messages - but maybe the root cause is a different one. Any hints on the culprit? Any idea on how to resolve this? 2022-12-19 09:38:50 WARNING org.jenkinsci.plugins.workflow.job.WorkflowRun getLogFile Avoid calling getLogFile on <ProjectName>/<BranchName> #2 java.lang.UnsupportedOperationException     at org.jenkinsci.plugins.workflow.job.WorkflowRun.getLogFile(WorkflowRun.java:1173)     at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)     at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)     at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)     at java.base/java.lang.reflect.Method.invoke(Method.java:566)     at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98)     at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)     at groovy.lang.MetaClassImpl.getProperty(MetaClassImpl.java:1845)     at groovy.lang.MetaClassImpl.getProperty(MetaClassImpl.java:3773)     at org.codehaus.groovy.runtime.InvokerHelper.getProperty(InvokerHelper.java:195)     at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.getProperty(ScriptBytecodeAdapter.java:469)     at com.cloudbees.groovy.cps.sandbox.DefaultInvoker.getProperty(DefaultInvoker.java:39)     at com.cloudbees.groovy.cps.impl.PropertyAccessBlock.rawGet(PropertyAccessBlock.java:20)     at com.cloudbees.groovy.cps.impl.PropertyishBlock$ContinuationImpl.get(PropertyishBlock.java:74)     at com.cloudbees.groovy.cps.LValueBlock$GetAdapter.receive(LValueBlock.java:30)     at com.cloudbees.groovy.cps.impl.PropertyishBlock$ContinuationImpl.fixName(PropertyishBlock.java:66)     at jdk.internal.reflect.GeneratedMethodAccessor444.invoke(Unknown Source)     at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)     at java.base/java.lang.reflect.Method.invoke(Method.java:566)     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:174)     at com.cloudbees.groovy.cps.Continuable$1.call(Continuable.java:163)     at org.codehaus.groovy.runtime.GroovyCategorySupport$ThreadCategoryInfo.use(GroovyCategorySupport.java:136)     at org.codehaus.groovy.runtime.GroovyCategorySupport.use(GroovyCategorySupport.java:275)     at com.cloudbees.groovy.cps.Continuable.run0(Continuable.java:163)     at org.jenkinsci.plugins.workflow.cps.SandboxContinuable.access$001(SandboxContinuable.java:18)     at org.jenkinsci.plugins.workflow.cps.SandboxContinuable.run0(SandboxContinuable.java:51)     at org.jenkinsci.plugins.workflow.cps.CpsThread.runNextChunk(CpsThread.java:187)     at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.run(CpsThreadGroup.java:420)     at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.access$400(CpsThreadGroup.java:95)     at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:330)     at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:294)     at org.jenkinsci.plugins.workflow.cps.CpsVmExecutorService$2.call(CpsVmExecutorService.java:67)     at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)     at hudson.remoting.SingleLaneExecutorService$1.run(SingleLaneExecutorService.java:139)     at jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28)     at jenkins.security.ImpersonatingExecutorService$1.run(ImpersonatingExecutorService.java:68)     at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)     at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)     at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)     at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)     at java.base/java.lang.Thread.run(Thread.java:829)

          Definitely not related to the build failure analyser. Some step in the pipeline calls getLogFile() in an asynchronous task which then throws UnsupportedOperationException.

          Unfortunately, from the stack trace it is not possible to see which line in you pipeline code is causing this.

          Christoph Vogtländer added a comment - Definitely not related to the build failure analyser. Some step in the pipeline calls getLogFile() in an asynchronous task which then throws UnsupportedOperationException. Unfortunately, from the stack trace it is not possible to see which line in you pipeline code is causing this.

          Alexander added a comment -

          Thank you gordin - i feel its a lack that such a report does not include source file path, name and line number that caused the problem.

          Alexander added a comment - Thank you gordin - i feel its a lack that such a report does not include source file path, name and line number that caused the problem.

          Alexander added a comment -

          Exported the last 3 comments to JENKINS-70319
          in order to allow separate managing of their core subject.

          Alexander added a comment - Exported the last 3 comments to JENKINS-70319 in order to allow separate managing of their core subject.

            timja Tim Jacomb
            gordin Christoph Vogtländer
            Votes:
            8 Vote for this issue
            Watchers:
            15 Start watching this issue

              Created:
              Updated:
              Resolved: