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

RegEx causes NPE in taskScanner

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Major Major
    • warnings-ng-plugin
    • None
    • Windows Server, Jenkins 2.274, warnings-ng 8.6.0

      The following regex causes a NPE in task scanner: "\/\/.*##(\w)(?:[:\- ](.))?"

      when scanning code which is similar to the following:

      // ###DUPLICATE_CODE:Comment 1
      Line of code
      // ##COMPLAINT Comment 2
      Line of code
      // ##WARNING
      Line of code
      // ###ERROR - Comment 4
      Line of code
      // ##ERROR - Comment 5
      Line of code

      This is possibly caused by the second capture group being empty in the //##WARNING line

       

      The error is:

       

      java.lang.NullPointerException
      at io.jenkins.plugins.analysis.warnings.tasks.TaskScanner.scanTasks(TaskScanner.java:249)
      at io.jenkins.plugins.analysis.warnings.tasks.TaskScanner.scan(TaskScanner.java:201)
      at io.jenkins.plugins.analysis.warnings.tasks.AgentScanner.invoke(AgentScanner.java:89)
      at io.jenkins.plugins.analysis.warnings.tasks.AgentScanner.invoke(AgentScanner.java:27)
      at hudson.FilePath.act(FilePath.java:1077)
      at hudson.FilePath.act(FilePath.java:1060)
      at io.jenkins.plugins.analysis.warnings.tasks.OpenTasks.scan(OpenTasks.java:162)
      at io.jenkins.plugins.analysis.core.steps.IssuesScanner.scan(IssuesScanner.java:93)
      at io.jenkins.plugins.analysis.core.steps.IssuesRecorder.scanWithTool(IssuesRecorder.java:736)
      at io.jenkins.plugins.analysis.core.steps.IssuesRecorder.record(IssuesRecorder.java:702)
      at io.jenkins.plugins.analysis.core.steps.IssuesRecorder.perform(IssuesRecorder.java:673)
      at io.jenkins.plugins.analysis.core.steps.RecordIssuesStep$Execution.run(RecordIssuesStep.java:1090)
      at io.jenkins.plugins.analysis.core.steps.RecordIssuesStep$Execution.run(RecordIssuesStep.java:1050)
      at org.jenkinsci.plugins.workflow.steps.SynchronousNonBlockingStepExecution.lambda$start$0(SynchronousNonBlockingStepExecution.java:47)
      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)

      The regex and the test code snippet are available here: https://regex101.com/r/RErFrY/2

       

            drulli Ulli Hafner
            luebbe Lübbe Onken
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: