-
Bug
-
Resolution: Not A Defect
-
Critical
-
None
-
Jenkins ver. 1.609.3
Email Extension Plugin 2.40.5
Linux ip-172-31-45-225 3.14.44-32.39.amzn1.x86_64 #1 SMP Thu Jun 11 20:33:38 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
When a specific Java version is selected in a Maven Project and that Java version is configured to automatically install, there is a NullPointerException thrown related to using build.getEnvironment(listener) in email ext templates. This causes data loss in the reports related to environment variables.
The exception from the jenkins log is:
Dec 15, 2015 1:34:59 PM org.apache.commons.jelly.expression.jexl.JexlExpression evaluate WARNING: Caught exception evaluating: build.getEnvironment(listener). Reason: java.lang.NullPointerException java.lang.NullPointerException at hudson.tools.JDKInstaller.performInstallation(JDKInstaller.java:119) at hudson.tools.InstallerTranslator.getToolHome(InstallerTranslator.java:68) at hudson.tools.ToolLocationNodeProperty.getToolHome(ToolLocationNodeProperty.java:107) at hudson.tools.ToolInstallation.translateFor(ToolInstallation.java:205) at hudson.model.JDK.forNode(JDK.java:130) at hudson.model.AbstractProject.getEnvironment(AbstractProject.java:355) at hudson.model.Run.getEnvironment(Run.java:2228) at hudson.model.AbstractBuild.getEnvironment(AbstractBuild.java:932) at hudson.maven.AbstractMavenBuild.getEnvironment(AbstractMavenBuild.java:56) at hudson.maven.MavenModuleSetBuild.getEnvironment(MavenModuleSetBuild.java:166) at sun.reflect.GeneratedMethodAccessor1371.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.apache.commons.jexl.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:258) at org.apache.commons.jexl.parser.ASTMethod.execute(ASTMethod.java:104) at org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:83) at org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:57) at org.apache.commons.jexl.parser.ASTReferenceExpression.value(ASTReferenceExpression.java:51) at org.apache.commons.jexl.ExpressionImpl.evaluate(ExpressionImpl.java:80) at org.apache.commons.jelly.expression.jexl.JexlExpression.evaluate(JexlExpression.java:69) at org.apache.commons.jelly.tags.core.CoreTagLibrary$3.run(CoreTagLibrary.java:134) at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:161) at org.apache.commons.jelly.impl.StaticTag.doTag(StaticTag.java:65) at org.apache.commons.jelly.impl.StaticTagScript.run(StaticTagScript.java:124) at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105) at hudson.plugins.emailext.plugins.content.JellyScriptContent.convert(JellyScriptContent.java:82) at hudson.plugins.emailext.plugins.content.JellyScriptContent.renderContent(JellyScriptContent.java:73) at hudson.plugins.emailext.plugins.content.JellyScriptContent.evaluate(JellyScriptContent.java:48) at org.jenkinsci.plugins.tokenmacro.DataBoundTokenMacro.evaluate(DataBoundTokenMacro.java:190) at org.jenkinsci.plugins.tokenmacro.TokenMacro.expand(TokenMacro.java:191) at org.jenkinsci.plugins.tokenmacro.TokenMacro.expandAll(TokenMacro.java:246) at hudson.plugins.emailext.plugins.ContentBuilder.transformText(ContentBuilder.java:71) at hudson.plugins.emailext.ExtendedEmailPublisher.addContent(ExtendedEmailPublisher.java:671) at hudson.plugins.emailext.ExtendedEmailPublisher.createMail(ExtendedEmailPublisher.java:550) at hudson.plugins.emailext.ExtendedEmailPublisher.sendMail(ExtendedEmailPublisher.java:331) at hudson.plugins.emailext.ExtendedEmailPublisher._perform(ExtendedEmailPublisher.java:322) at hudson.plugins.emailext.ExtendedEmailPublisher.perform(ExtendedEmailPublisher.java:230) at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20) at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:776) at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:723) at hudson.maven.MavenModuleSetBuild$MavenModuleSetBuildExecution.cleanUp(MavenModuleSetBuild.java:1071) at hudson.model.Run.execute(Run.java:1785) at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:531) at hudson.model.ResourceController.execute(ResourceController.java:98) at hudson.model.Executor.run(Executor.java:381)
The code in the jelly template is:
<j:set var="envVars" value="${build.getEnvironment(listener)}" />