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

Duplicate symbols in different plugins cause NPEs

      If two different plugins define the same symbol name in steps or parameters then the workflow cps plugin can't instantiate the right element.

      I.e., in JENKINS-55328 a user created a step

      recordIssues tools: [checkStyle(), pmd(pattern: 'target/pmd.xml'), spotBugs(), cpd(pattern: 'target/cpd.xml')]
      

      Since the user already installed the PMD plugin, the symbol pmd has been reserved for the step in the PMD plugin already. That means, rather then providing the pmd tool to my recordIssues step, it started the pmd step and set the corresponding array element to null.

      The same happened in JENKINS-53181. In the comments jglick noted that this behavior could not be changed (or is hard to change). It would help other plugin developers, if in such cases at least the workflow-cps engine could provide a meaningful exception (with the conflicting Jenkinsfile line) rather then assigning null to a parameter.

          [JENKINS-55349] Duplicate symbols in different plugins cause NPEs

          Ulli Hafner added a comment -

          It might make also sense that we have a tool that scans all plugin symbols for duplications, e.g. before these symbols are aggregated in our pipeline online help page. It is only a matter of time that someone else will create an object with a symbol that has been used already.

          Ulli Hafner added a comment - It might make also sense that we have a tool that scans all plugin symbols for duplications, e.g. before these symbols are aggregated in our pipeline online help page. It is only a matter of time that someone else will create an object with a symbol that has been used already.

          Ulli Hafner added a comment -

          Ulli Hafner added a comment - See https://issues.jenkins-ci.org/browse/INFRA-2012 .

          James Nord added a comment -

          James Nord added a comment - and commentrary on  https://github.com/jenkinsci/structs-plugin/pull/40

            Unassigned Unassigned
            drulli Ulli Hafner
            Votes:
            1 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: