You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用JGit、PMD做Java静态代码分析时遇StackOverflowError求助

问题原因分析

循环引用引发无限递归
你的custom-ruleset.xml文件中存在自我引用:

<rule ref="./custom-ruleset.xml"/>

PMD解析规则集时,会反复加载同一个文件,触发无限递归调用,最终耗尽栈空间抛出java.lang.StackOverflowError。异常栈中重复出现的parseRuleSetNode与parseRuleSetReferenceNode调用链,也验证了这一无限循环的存在。

解决办法
  • 修正规则集引用路径:若存在独立的自定义规则集文件(如my-custom-rules.xml),将引用路径改为指向该文件:
    <rule ref="./my-custom-rules.xml"/>
    
  • 移除自我引用:如果没有独立的自定义规则集,直接删除<rule ref="./custom-ruleset.xml"/>这一行,将自定义规则直接编写在当前文件内。
  • 重命名文件(可选):若当前文件是组合规则集,建议重命名为combined-ruleset.xml,避免与真正的自定义规则集文件混淆。

内容的提问来源于stack exchange,提问作者New Bee Beginner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 04:44:51