A user in a cloud setup in which there was one Maven installation defined, with no static installation directory but a plugin offering a location for cloud slaves, ran Subversion polling on a job and got this error:
java.lang.IllegalArgumentException: Null value not allowed as an environment variable: M2_HOME
at hudson.EnvVars.put(EnvVars.java:172)
at hudson.tasks.Maven$MavenInstallation.buildEnvVars(Maven.java:489)
at hudson.maven.MavenModuleSetBuild.getEnvironment(MavenModuleSetBuild.java:172)
at hudson.scm.SubversionSCM.compareRemoteRevisionWith(SubversionSCM.java:1230)
at hudson.scm.SCM._compareRemoteRevisionWith(SCM.java:356)
at hudson.scm.SCM.poll(SCM.java:373)
at hudson.model.AbstractProject._poll(AbstractProject.java:1521)
at hudson.model.AbstractProject.poll(AbstractProject.java:1446)
at hudson.triggers.SCMTrigger$Runner.runPolling(SCMTrigger.java:439)
at hudson.triggers.SCMTrigger$Runner.run(SCMTrigger.java:468)
at hudson.util.SequentialExecutionQueue$QueueEntry.run(SequentialExecutionQueue.java:118)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask$Sync.innerRun(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)
Code changed in jenkins
User: Jesse Glick
Path:
changelog.html
core/src/main/java/hudson/model/JDK.java
core/src/main/java/hudson/tasks/Maven.java
core/src/main/java/hudson/tools/ToolInstallation.java
test/src/test/java/hudson/tasks/MavenTest.java
http://jenkins-ci.org/commit/jenkins/be158b4b2ae269de4a55d04f293c1ec34765e056
Log:
[FIXED JENKINS-18898] ToolInstallation.getHome may be null, and buildEnvVars must take that into account.