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

java.lang.UnsupportedOperationException in RecordIssuesStep

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Major Major
    • None
    • workflow-api 2.41

      While recording ideaInspection, we get the following exception:

      java.lang.UnsupportedOperationException
      	at java.util.concurrent.CopyOnWriteArrayList$COWIterator.remove(CopyOnWriteArrayList.java:1182)
      	at java.util.AbstractCollection.removeAll(AbstractCollection.java:376)
      	at hudson.model.Actionable.addOrReplaceAction(Actionable.java:209)
      	at io.jenkins.plugins.analysis.core.util.PipelineResultHandler.setResult(PipelineResultHandler.java:34)
      	at io.jenkins.plugins.analysis.core.steps.IssuesPublisher.attachAction(IssuesPublisher.java:120)
      	at io.jenkins.plugins.analysis.core.steps.IssuesRecorder.publishResult(IssuesRecorder.java:721)
      	at io.jenkins.plugins.analysis.core.steps.IssuesRecorder.record(IssuesRecorder.java:651)
      	at io.jenkins.plugins.analysis.core.steps.IssuesRecorder.perform(IssuesRecorder.java:617)
      	at io.jenkins.plugins.analysis.core.steps.RecordIssuesStep$Execution.run(RecordIssuesStep.java:1024)
      	at io.jenkins.plugins.analysis.core.steps.RecordIssuesStep$Execution.run(RecordIssuesStep.java:985)
      	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)
      

      The pipeline code:

      recordIssues(
      	failOnError: true,
      	enabledForFailure: true,
      	ignoreFailedBuilds: false,
      	qualityGates: [[threshold: 1, type: 'TOTAL', unstable: true]],
      	tools: [
      		ideaInspection(pattern: 'idea-inspection-output/**'),
      	],
      )
      

      This is identical in all projects. It is not related to the specific inspection result itself, as long as a failing inspection is reported. Projects without inspection errors will be a success.

      Please find attached a minimal example. Disabling failOnError will make the sample running. The only errors I see in my logs are:

      [IntelliJ IDEA Inspections] [-ERROR-] Can't create fingerprints for some files:
      [IntelliJ IDEA Inspections] [-ERROR-] - '$PROJECT_DIR$/testsrc/com/example/ExampleTest.java', IO exception has been thrown: java.nio.file.NoSuchFileException: $PROJECT_DIR$/testsrc/com/example/ExampleTest.java
      

      I'm not sure if this is related to the exception, but even if this is handled as an error in the sense of failOnError, there should be no exception.

          [JENKINS-64438] java.lang.UnsupportedOperationException in RecordIssuesStep

          Martin Heinzerling created issue -
          Martin Heinzerling made changes -
          Description Original: While recording ideaInspection, we get the following exception:
          {code:java}
          java.lang.UnsupportedOperationException
          at java.util.concurrent.CopyOnWriteArrayList$COWIterator.remove(CopyOnWriteArrayList.java:1182)
          at java.util.AbstractCollection.removeAll(AbstractCollection.java:376)
          at hudson.model.Actionable.addOrReplaceAction(Actionable.java:209)
          at io.jenkins.plugins.analysis.core.util.PipelineResultHandler.setResult(PipelineResultHandler.java:34)
          at io.jenkins.plugins.analysis.core.steps.IssuesPublisher.attachAction(IssuesPublisher.java:120)
          at io.jenkins.plugins.analysis.core.steps.IssuesRecorder.publishResult(IssuesRecorder.java:721)
          at io.jenkins.plugins.analysis.core.steps.IssuesRecorder.record(IssuesRecorder.java:651)
          at io.jenkins.plugins.analysis.core.steps.IssuesRecorder.perform(IssuesRecorder.java:617)
          at io.jenkins.plugins.analysis.core.steps.RecordIssuesStep$Execution.run(RecordIssuesStep.java:1024)
          at io.jenkins.plugins.analysis.core.steps.RecordIssuesStep$Execution.run(RecordIssuesStep.java:985)
          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)
          {code}

          The pipeline code:

          {code}
          recordIssues(
          failOnError: true,
          enabledForFailure: true,
          ignoreFailedBuilds: false,
          qualityGates: [[threshold: 1, type: 'TOTAL', unstable: true]],
          tools: [
          ideaInspection(pattern: 'idea-inspection-output/**'),
          ],
          )
          {code}

          This is identical in all projects. It is not related to the specific inspection result itself, as long as a failing exception is reported. Projects without inspection errors will be a success.
          New: While recording ideaInspection, we get the following exception:
          {code:java}
          java.lang.UnsupportedOperationException
          at java.util.concurrent.CopyOnWriteArrayList$COWIterator.remove(CopyOnWriteArrayList.java:1182)
          at java.util.AbstractCollection.removeAll(AbstractCollection.java:376)
          at hudson.model.Actionable.addOrReplaceAction(Actionable.java:209)
          at io.jenkins.plugins.analysis.core.util.PipelineResultHandler.setResult(PipelineResultHandler.java:34)
          at io.jenkins.plugins.analysis.core.steps.IssuesPublisher.attachAction(IssuesPublisher.java:120)
          at io.jenkins.plugins.analysis.core.steps.IssuesRecorder.publishResult(IssuesRecorder.java:721)
          at io.jenkins.plugins.analysis.core.steps.IssuesRecorder.record(IssuesRecorder.java:651)
          at io.jenkins.plugins.analysis.core.steps.IssuesRecorder.perform(IssuesRecorder.java:617)
          at io.jenkins.plugins.analysis.core.steps.RecordIssuesStep$Execution.run(RecordIssuesStep.java:1024)
          at io.jenkins.plugins.analysis.core.steps.RecordIssuesStep$Execution.run(RecordIssuesStep.java:985)
          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)
          {code}

          The pipeline code:

          {code}
          recordIssues(
          failOnError: true,
          enabledForFailure: true,
          ignoreFailedBuilds: false,
          qualityGates: [[threshold: 1, type: 'TOTAL', unstable: true]],
          tools: [
          ideaInspection(pattern: 'idea-inspection-output/**'),
          ],
          )
          {code}

          This is identical in all projects. It is not related to the specific inspection result itself, as long as a failing inspection is reported. Projects without inspection errors will be a success.
          Martin Heinzerling made changes -
          Environment Original: Jenkins 2.249.3
          warnings-ng-plugin 8.4.4
          New: Jenkins 2.249.3
          warnings-ng-plugin 8.4.4
          idea 2020.1
          ideaSHA256 fa301279ec1591ecad8758113ff22a64e82b11a583e7eae6fac0eb60ddc9f8e5

          Martin Heinzerling made changes -
          Attachment New: minimal.zip [ 53595 ]
          Martin Heinzerling made changes -
          Description Original: While recording ideaInspection, we get the following exception:
          {code:java}
          java.lang.UnsupportedOperationException
          at java.util.concurrent.CopyOnWriteArrayList$COWIterator.remove(CopyOnWriteArrayList.java:1182)
          at java.util.AbstractCollection.removeAll(AbstractCollection.java:376)
          at hudson.model.Actionable.addOrReplaceAction(Actionable.java:209)
          at io.jenkins.plugins.analysis.core.util.PipelineResultHandler.setResult(PipelineResultHandler.java:34)
          at io.jenkins.plugins.analysis.core.steps.IssuesPublisher.attachAction(IssuesPublisher.java:120)
          at io.jenkins.plugins.analysis.core.steps.IssuesRecorder.publishResult(IssuesRecorder.java:721)
          at io.jenkins.plugins.analysis.core.steps.IssuesRecorder.record(IssuesRecorder.java:651)
          at io.jenkins.plugins.analysis.core.steps.IssuesRecorder.perform(IssuesRecorder.java:617)
          at io.jenkins.plugins.analysis.core.steps.RecordIssuesStep$Execution.run(RecordIssuesStep.java:1024)
          at io.jenkins.plugins.analysis.core.steps.RecordIssuesStep$Execution.run(RecordIssuesStep.java:985)
          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)
          {code}

          The pipeline code:

          {code}
          recordIssues(
          failOnError: true,
          enabledForFailure: true,
          ignoreFailedBuilds: false,
          qualityGates: [[threshold: 1, type: 'TOTAL', unstable: true]],
          tools: [
          ideaInspection(pattern: 'idea-inspection-output/**'),
          ],
          )
          {code}

          This is identical in all projects. It is not related to the specific inspection result itself, as long as a failing inspection is reported. Projects without inspection errors will be a success.
          New: While recording ideaInspection, we get the following exception:

          {code:java}
          java.lang.UnsupportedOperationException
          at java.util.concurrent.CopyOnWriteArrayList$COWIterator.remove(CopyOnWriteArrayList.java:1182)
          at java.util.AbstractCollection.removeAll(AbstractCollection.java:376)
          at hudson.model.Actionable.addOrReplaceAction(Actionable.java:209)
          at io.jenkins.plugins.analysis.core.util.PipelineResultHandler.setResult(PipelineResultHandler.java:34)
          at io.jenkins.plugins.analysis.core.steps.IssuesPublisher.attachAction(IssuesPublisher.java:120)
          at io.jenkins.plugins.analysis.core.steps.IssuesRecorder.publishResult(IssuesRecorder.java:721)
          at io.jenkins.plugins.analysis.core.steps.IssuesRecorder.record(IssuesRecorder.java:651)
          at io.jenkins.plugins.analysis.core.steps.IssuesRecorder.perform(IssuesRecorder.java:617)
          at io.jenkins.plugins.analysis.core.steps.RecordIssuesStep$Execution.run(RecordIssuesStep.java:1024)
          at io.jenkins.plugins.analysis.core.steps.RecordIssuesStep$Execution.run(RecordIssuesStep.java:985)
          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)
          {code}

          The pipeline code:

          {code}
          recordIssues(
          failOnError: true,
          enabledForFailure: true,
          ignoreFailedBuilds: false,
          qualityGates: [[threshold: 1, type: 'TOTAL', unstable: true]],
          tools: [
          ideaInspection(pattern: 'idea-inspection-output/**'),
          ],
          )
          {code}

          This is identical in all projects. It is not related to the specific inspection result itself, as long as a failing inspection is reported. Projects without inspection errors will be a success.

          Please find attached a minimal example. Disabling failOnError will make the sample running. The only errors I see in my logs are:
          {code}
          [IntelliJ IDEA Inspections] [-ERROR-] Can't create fingerprints for some files:
          [IntelliJ IDEA Inspections] [-ERROR-] - '$PROJECT_DIR$/testsrc/com/example/ExampleTest.java', IO exception has been thrown: java.nio.file.NoSuchFileException: $PROJECT_DIR$/testsrc/com/example/ExampleTest.java
          {code}

          I'm not sure if this is related to the exception, but even if this is handled as an error in the sense of failOnError, there should be no exception.
          Ulli Hafner made changes -
          Component/s New: core [ 15593 ]
          Assignee Original: Ulli Hafner [ drulli ]
          Martin Heinzerling made changes -
          Environment Original: Jenkins 2.249.3
          warnings-ng-plugin 8.4.4
          idea 2020.1
          ideaSHA256 fa301279ec1591ecad8758113ff22a64e82b11a583e7eae6fac0eb60ddc9f8e5

          New: Jenkins 2.249.3
          warnings-ng-plugin 8.4.4
          idea 2020.1
          ideaSHA256 fa301279ec1591ecad8758113ff22a64e82b11a583e7eae6fac0eb60ddc9f8e5
          openjdk version "1.8.0_272"
          OpenJDK Runtime Environment (build 1.8.0_272-8u272-b10-0+deb9u1-b10)
          OpenJDK 64-Bit Server VM (build 25.272-b10, mixed mode)
          Ulli Hafner made changes -
          Component/s New: workflow-api-plugin [ 21711 ]
          Ulli Hafner made changes -
          Remote Link New: This issue links to "PR #133 (Web Link)" [ 26432 ]
          Devin Nusbaum made changes -
          Resolution New: Fixed [ 1 ]
          Status Original: Open [ 1 ] New: Fixed but Unreleased [ 10203 ]
          Ulli Hafner made changes -
          Assignee New: Bill Collins [ mrginglymus ]

            mrginglymus Bill Collins
            mheinzerling Martin Heinzerling
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated:
              Resolved: