Just saw a StackOverflowError in Javac.
Interesting fact is that it happens on Jenkins CI but not at my system, with the same JDK version on Linux.
[INFO] Compiling 40 source files to /mnt/hudson_workspace/workspace/Windup-daily/windup/rules-java-ee/target/classes The system is out of resources. Consult the following stack trace for details. java.lang.StackOverflowError at com.sun.tools.javac.code.Type$ClassType.accept(Type.java:583) at com.sun.tools.javac.code.Types$UnaryVisitor.visit(Types.java:3803) at com.sun.tools.javac.code.Types.supertype(Types.java:1750) at com.sun.tools.javac.comp.Resolve.findField(Resolve.java:551) at com.sun.tools.javac.comp.Resolve.findField(Resolve.java:553) at com.sun.tools.javac.comp.Resolve.findField(Resolve.java:559) at com.sun.tools.javac.comp.Resolve.findField(Resolve.java:553) at com.sun.tools.javac.comp.Resolve.findVar(Resolve.java:602) at com.sun.tools.javac.comp.Resolve.findIdent(Resolve.java:1196) at com.sun.tools.javac.comp.Resolve.resolveIdent(Resolve.java:1396) at com.sun.tools.javac.comp.Attr.visitIdent(Attr.java:2162) at com.sun.tools.javac.tree.JCTree$JCIdent.accept(JCTree.java:1705) at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:431) at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:418) at com.sun.tools.javac.comp.Attr.visitSelect(Attr.java:2247) at com.sun.tools.javac.tree.JCTree$JCFieldAccess.accept(JCTree.java:1677) at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:431) at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:418) at com.sun.tools.javac.comp.Attr.attribArgs(Attr.java:504) at com.sun.tools.javac.comp.Attr.visitApply(Attr.java:1513)
Turns out to be caused by different RHEL Javac defaults.
MAVEN_OPTS=-Xss1024k fixed it.
I specifically use the "Invoke top-level Maven goal" in Jenkins CI, so "-Xss1024k" goes to the "JVM Options" field.