Jenkins Version
2.579
JTE Version
2.5.5
Bug Description
An error occurs when running a pipeline job, using the template engine:
Relevant log output
[JTE] -- file path: ci/pipeline_config.groovy
java.lang.ClassNotFoundException: org.apache.commons.lang.StringEscapeUtils
Caused: java.lang.NoClassDefFoundError: org/apache/commons/lang/StringEscapeUtils
at PluginClassLoader for templating-engine//org.boozallen.plugins.jte.init.governance.config.dsl.PipelineConfigurationDsl$_printBlock_closure1.doCall(PipelineConfigurationDsl.groovy:130)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
at java.base/java.lang.reflect.Method.invoke(Method.java:565)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:264)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034)
at groovy.lang.Closure.call(Closure.java:420)
at org.codehaus.groovy.runtime.DefaultGroovyMethods.callClosureForMapEntry(DefaultGroovyMethods.java:5361)
at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2202)
at org.codehaus.groovy.runtime.dgm$164.invoke(Unknown Source)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoMetaMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:251)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.call(PogoMetaMethodSite.java:71)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:58)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:128)
at PluginClassLoader for templating-engine//org.boozallen.plugins.jte.init.governance.config.dsl.PipelineConfigurationDsl.printBlock(PipelineConfigurationDsl.groovy:107)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
at java.base/java.lang.reflect.Method.invoke(Method.java:565)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:352)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034)
at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:68)
at PluginClassLoader for templating-engine//org.boozallen.plugins.jte.init.governance.config.dsl.PipelineConfigurationDsl$_printBlock_closure1.doCall(PipelineConfigurationDsl.groovy:120)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
at java.base/java.lang.reflect.Method.invoke(Method.java:565)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:264)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034)
at groovy.lang.Closure.call(Closure.java:420)
at org.codehaus.groovy.runtime.DefaultGroovyMethods.callClosureForMapEntry(DefaultGroovyMethods.java:5361)
at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2202)
at org.codehaus.groovy.runtime.dgm$164.invoke(Unknown Source)
at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:274)
at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:56)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.call(PogoMetaMethodSite.java:76)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:128)
at PluginClassLoader for templating-engine//org.boozallen.plugins.jte.init.governance.config.dsl.PipelineConfigurationDsl.printBlock(PipelineConfigurationDsl.groovy:107)
at org.boozallen.plugins.jte.init.governance.config.dsl.PipelineConfigurationDsl$printBlock$1.callCurrent(Unknown Source)
at PluginClassLoader for templating-engine//org.boozallen.plugins.jte.init.governance.config.dsl.PipelineConfigurationDsl.serialize(PipelineConfigurationDsl.groovy:101)
at org.boozallen.plugins.jte.init.governance.config.dsl.PipelineConfigurationDsl$serialize$0.call(Unknown Source)
at PluginClassLoader for templating-engine//org.boozallen.plugins.jte.init.governance.config.dsl.PipelineConfigurationObject.plus(PipelineConfigurationObject.groovy:59)
at org.boozallen.plugins.jte.init.governance.config.dsl.PipelineConfigurationObject$plus.call(Unknown Source)
at PluginClassLoader for templating-engine//org.boozallen.plugins.jte.init.PipelineConfigurationAggregator.aggregate(PipelineConfigurationAggregator.groovy:58)
at org.boozallen.plugins.jte.init.PipelineConfigurationAggregator$aggregate.call(Unknown Source)
at PluginClassLoader for templating-engine//org.boozallen.plugins.jte.job.TemplateFlowDefinition.create(TemplateFlowDefinition.groovy:77)
at PluginClassLoader for workflow-job//org.jenkinsci.plugins.workflow.job.WorkflowRun.run(WorkflowRun.java:342)
at hudson.model.ResourceController.execute(ResourceController.java:97)
at hudson.model.Executor.run(Executor.java:456)
Steps to Reproduce
This error occurs because Jenkins has removed the obsolete Apache Commons Lang 2 library (org.apache.commons.lang.*) from the core system. Meanwhile, the Jenkins Templating Engine (JTE) plugin attempts to use the legacy StringEscapeUtils class (which has since been replaced in recent libraries by Commons Text or Commons Lang 3).
Thus any pipeline job relying on the template engine may be concerned by this issue.
Jenkins Version
2.579
JTE Version
2.5.5
Bug Description
An error occurs when running a pipeline job, using the template engine:
Relevant log output
Steps to Reproduce
This error occurs because Jenkins has removed the obsolete Apache Commons Lang 2 library (org.apache.commons.lang.*) from the core system. Meanwhile, the Jenkins Templating Engine (JTE) plugin attempts to use the legacy StringEscapeUtils class (which has since been replaced in recent libraries by Commons Text or Commons Lang 3).
Thus any pipeline job relying on the template engine may be concerned by this issue.