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)