在AspectJ编织期间,Jenkins构建随机失败并出现StackOverflowError

时间:2013-04-17 11:42:23

标签: build maven-2 jenkins aspectj

我们的Jenkins(maven)构建随机失败,出现以下错误堆栈:

 -- (StackOverflowError) null
null
java.lang.StackOverflowError
    at org.aspectj.weaver.World.resolve(World.java:273)
    at org.aspectj.weaver.World.resolve(World.java:209)
    at org.aspectj.weaver.UnresolvedType.resolve(UnresolvedType.java:645)
    at org.aspectj.weaver.ResolvedType.getRawType(ResolvedType.java:2331)
    at org.aspectj.weaver.ReferenceType.isAssignableFrom(ReferenceType.java:427)
    at org.aspectj.weaver.ReferenceType.isAssignableFrom(ReferenceType.java:393)
    at org.aspectj.weaver.ReferenceType.isAssignableFrom(ReferenceType.java:427)
    at org.aspectj.weaver.ReferenceType.isAssignableFrom(ReferenceType.java:393)

-- (StackOverflowError) null null java.lang.StackOverflowError at org.aspectj.weaver.World.resolve(World.java:273) at org.aspectj.weaver.World.resolve(World.java:209) at org.aspectj.weaver.UnresolvedType.resolve(UnresolvedType.java:645) at org.aspectj.weaver.ResolvedType.getRawType(ResolvedType.java:2331) at org.aspectj.weaver.ReferenceType.isAssignableFrom(ReferenceType.java:427) at org.aspectj.weaver.ReferenceType.isAssignableFrom(ReferenceType.java:393) at org.aspectj.weaver.ReferenceType.isAssignableFrom(ReferenceType.java:427) at org.aspectj.weaver.ReferenceType.isAssignableFrom(ReferenceType.java:393)

这种失败绝对不是由实际的代码更改引起的,因为通常在这样的失败之后,后续的构建,手动触发(即不是代码提交)成功。

版本如下:

詹金斯:1.501

maven:2.2.2

aspectjrt:1.6.10

任何人都知道如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

猜测,但是由于1.6.8中修复的错误导致了类似的错误。是什么阻止您升级到当前的AspectJ版本?你的真的很老了。

答案 1 :(得分:0)

我认为升级到最新版本的aspectj没有解决问题的原因是因为在pom中定义了aspectj maven插件版本1.3。此版本的插件依赖于aspectj版本1.6.7(1.6.8之前的版本,其中引入了修复)。将插件升级到1.4版(取决于aspectj版本1.6.11)似乎解决了问题,因为从那时起我们没有得到StackOverflowError异常。

一般而言,如果存在过时的隐藏依赖关系,则应检查依赖关系树(包括插件)。

找出依赖关系树(包括插件)的命令是:

mvn dependency:tree

mvn dependency:resolve-plugins