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

Job save removes obligatory <defaultValue> of <hudson.model.StringParameterDefinition>

    XMLWordPrintable

    Details

    • Similar Issues:
    • Released As:
      Maven Plugin 3.10

      Description

      After a recent update of Jenkins and all plugins we encountered this exception in multiple jobs:

      ERROR: Processing failed due to a bug in the code. Please report this to the issue tracker (https://jenkins.io/redirect/report-an-issue).
      java.lang.NullPointerException
      	at java.base/java.util.concurrent.ConcurrentHashMap.putVal(ConcurrentHashMap.java:1011)
      	at java.base/java.util.concurrent.ConcurrentHashMap.put(ConcurrentHashMap.java:1006)
      	at java.base/java.util.Properties.put(Properties.java:1337)
      	at hudson.maven.MavenModuleSetBuild$PomParser.<init>(MavenModuleSetBuild.java:1171)
      	at hudson.maven.MavenModuleSetBuild$MavenModuleSetBuildExecution.parsePoms(MavenModuleSetBuild.java:985)
      	at hudson.maven.MavenModuleSetBuild$MavenModuleSetBuildExecution.doRun(MavenModuleSetBuild.java:689)
      	at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:513)
      	at hudson.model.Run.execute(Run.java:1907)
      	at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:543)
      	at hudson.model.ResourceController.execute(ResourceController.java:97)
      	at hudson.model.Executor.run(Executor.java:429)
      project=hudson.maven.MavenModuleSet@409eb7a3[...]
      

      Resolving this proved to be quite difficult, but we finally found out that Jenkins seems to remove the <defaultValue></defaultValue> entry of a <hudson.model.StringParameterDefinition> in the config.xml upon save when the default value is empty.

      This triggers the exception. After manually reverting the deletion and reloading the config via the Jenkins GUI, the job is able to run again.

      The same happens for each <hudson.model.ChoiceParameterDefinition> without a default value, but there the element seems to be optional during execution as it triggers no exception.

        Attachments

          Issue Links

            Activity

            Hide
            oleg_nenashev Oleg Nenashev added a comment -

            Cause: https://github.com/jenkinsci/maven-plugin/blame/9af6b016d56823200f1a614b3a22fcbce03f7f40/src/main/java/hudson/maven/MavenModuleSetBuild.java#L1171 . The code in the plugin was last updated 10 years ago, and indeed there is an expectation that the default value is never null.

             

            https://github.com/jenkinsci/jenkins/commit/8152129c731472c30fde53618f3ec6e7f3c1c5a6#diff-e4f52968c7be6106c2db6b72f0acc9c47e34ef075593f20082cbf1bad59bab35 from Jesse Glick added "Util.fixEmpty()" to the databound setter. After that empty values become null.  Nullness of getDefaultValue() is not defined in Javadoc, so it may definitely come as a surprise to end users and plugin developers. Better to handle it as a regression

             

             

            Show
            oleg_nenashev Oleg Nenashev added a comment - Cause: https://github.com/jenkinsci/maven-plugin/blame/9af6b016d56823200f1a614b3a22fcbce03f7f40/src/main/java/hudson/maven/MavenModuleSetBuild.java#L1171  . The code in the plugin was last updated 10 years ago, and indeed there is an expectation that the default value is never null.   https://github.com/jenkinsci/jenkins/commit/8152129c731472c30fde53618f3ec6e7f3c1c5a6#diff-e4f52968c7be6106c2db6b72f0acc9c47e34ef075593f20082cbf1bad59bab35  from Jesse Glick  added "Util.fixEmpty()" to the databound setter. After that empty values become null.  Nullness of getDefaultValue() is not defined in Javadoc, so it may definitely come as a surprise to end users and plugin developers. Better to handle it as a regression    
            Hide
            stifm Sven added a comment -

            We've seen a bug fix in Maven Plugin 3.10, installed and tested it. The NPE no longer occurs, so this issue can be closed.

            Show
            stifm Sven added a comment - We've seen a bug fix in Maven Plugin 3.10 , installed and tested it. The NPE no longer occurs, so this issue can be closed.

              People

              Assignee:
              jglick Jesse Glick
              Reporter:
              stifm Sven
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: