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

NPE from second recordIssues step

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Major Major
    • warnings-ng-plugin
    • None
    • Warnings Next Generation 8.0.0

      I have a pipeline that does the following:

              recordIssues(
                  healthy: 1,
                  qualityGates: [[threshold: 40, type: 'TOTAL', unstable: true]],
                  tools: [msBuild(), fxcop(pattern: 'fxcop.xml'), styleCop(pattern: '**/StyleCopViolations.xml')],
                  unhealthy: 39)
              recordIssues(
                  tools: [taskScanner(highTags: 'HACK,FIXME', includePattern: '**/*.cs,**/app/**/*.js', normalTags: 'TODO')])
      

      This is done in order to use the unhealthy threshold only for the MSBuild/FxCop/StyleCop issues, and allow the TaskScanner portion to produce any number of "issues" without running into a threshold.

      Prior to 8.0.0, this worked fine, but now the second recordIssues generates this:

       java.lang.NullPointerException
       	at edu.hm.hafner.analysis.Report.addAll(Report.java:166)
       	at edu.hm.hafner.analysis.Report.copyIssuesAndProperties(Report.java:639)
       	at edu.hm.hafner.analysis.Report.addAll(Report.java:186)
       	at io.jenkins.plugins.analysis.core.model.AnalysisResult.getIssues(AnalysisResult.java:413)
       	at java.util.Optional.map(Optional.java:215)
       	at io.jenkins.plugins.analysis.core.model.AnalysisHistory.getIssues(AnalysisHistory.java:142)
       	at io.jenkins.plugins.analysis.core.model.DeltaReport.<init>(DeltaReport.java:48)
       	at io.jenkins.plugins.analysis.core.steps.IssuesPublisher.attachAction(IssuesPublisher.java:110)
       	at io.jenkins.plugins.analysis.core.steps.IssuesRecorder.publishResult(IssuesRecorder.java:706)
       	at io.jenkins.plugins.analysis.core.steps.IssuesRecorder.record(IssuesRecorder.java:636)
       	at io.jenkins.plugins.analysis.core.steps.IssuesRecorder.perform(IssuesRecorder.java:602)
       	at io.jenkins.plugins.analysis.core.steps.RecordIssuesStep$Execution.run(RecordIssuesStep.java:1007)
       	at io.jenkins.plugins.analysis.core.steps.RecordIssuesStep$Execution.run(RecordIssuesStep.java:969)
       	at org.jenkinsci.plugins.workflow.steps.SynchronousNonBlockingStepExecution.lambda$start$0(SynchronousNonBlockingStepExecution.java:47)
       	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)
      

      Is there a different 8.0-compatible way to accomplish this behavior, or is this just a legitimate bug?

            drulli Ulli Hafner
            medianick Nick Jones
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: