Jenkins v2.277.3 升级Token Macro插件后运行任务报扩展解析类创建错误
当前环境与前置操作
- 运行环境:Jenkins v2.277.3
- 已完成的前置排障:参考同类型报错的处理经验,将Token Macro插件升级至v2.15版本
- 已参考的同场景报错:Jenkins v2.212环境下出现的「Error creating extended parser class: Class not found」类问题的处理思路
构建过程触发的异常
执行构建任务时,Build Name Setter插件在设置构建名称阶段,触发如下运行时异常:
FATAL: Error creating extended parser class: null java.lang.IllegalStateException at org.objectweb.asm.tree.analysis.BasicInterpreter.<init>(BasicInterpreter.java:66) at org.parboiled.transform.RuleMethodInterpreter.<init>(RuleMethodInterpreter.java:42) at org.parboiled.transform.InstructionGraphCreator.process(InstructionGraphCreator.java:41) at org.parboiled.transform.ParserTransformer.runMethodTransformers(ParserTransformer.java:62) at org.parboiled.transform.ParserTransformer.extendParserClass(ParserTransformer.java:45) at org.parboiled.transform.ParserTransformer.transformParser(ParserTransformer.java:39) at org.parboiled.Parboiled.createParser(Parboiled.java:54) Caused: java.lang.RuntimeException: Error creating extended parser class: null at org.parboiled.Parboiled.createParser(Parboiled.java:58) at org.jenkinsci.plugins.tokenmacro.Parser.process(Parser.java:80) at org.jenkinsci.plugins.tokenmacro.Parser.process(Parser.java:74) at org.jenkinsci.plugins.tokenmacro.TokenMacro.expand(TokenMacro.java:199) at org.jenkinsci.plugins.tokenmacro.TokenMacro.expandAll(TokenMacro.java:237) at org.jenkinsci.plugins.tokenmacro.TokenMacro.expandAll(TokenMacro.java:207) at org.jenkinsci.plugins.buildnamesetter.Executor.evaluateMacro(Executor.java:75) at org.jenkinsci.plugins.buildnamesetter.Executor.setName(Executor.java:30) at org.jenkinsci.plugins.buildnamesetter.BuildNameSetter.setUp(BuildNameSetter.java:84) at hudson.model.Build$BuildExecution.doRun(Build.java:157) at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:513) at hudson.model.Run.execute(Run.java:1907) at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43) at hudson.model.ResourceController.execute(ResourceController.java:97) at hudson.model.Executor.run(Executor.java:429)
问题根因
- 该异常属于典型的类加载版本冲突:Token Macro v2.15版本内置的Parboiled解析库为1.1.4旧版,依赖ASM 6.x版本的字节码处理接口
- Jenkins v2.277.3核心模块内置的ASM库版本为9.x,接口签名已发生变更,旧版Parboiled在初始化解析类时,无法匹配新版ASM的
BasicInterpreter构造方法逻辑,最终抛出类初始化失败的异常
可落地解决操作
- 将Token Macro插件升级至v2.16及以上适配版本,该版本内置的Parboiled 1.4.8已完成对高版本ASM的适配,可从根源解决解析类初始化失败的问题
- 升级完成后完整重启Jenkins服务,清理插件类加载缓存,避免旧版本Parboiled类残留导致的类优先级错乱
- 若因平台依赖限制无法升级Token Macro版本,可临时降级Build Name Setter插件到不触发Token Macro扩展解析逻辑的版本,绕开异常触发路径
内容的提问来源于stack exchange,提问作者Javatar
相关产品推荐
相关产品推荐

