javac compiler fails with StackOverflowError

已回答

javac compiler fails with StackOverflowError

"Error:java: java.lang.StackOverflowError"

 

The same project compiles fine with the Eclipse compiler

Is there some way at least I can see the stack trace of the stack overflow?

I don't see anything in system\log\idea.log or system\log\build-log\build.log

 

I'm using:

IntelliJ IDEA 2018.1.5 (Community Edition)
Build #IC-181.5281.24, built on June 12, 2018
JRE: 1.8.0_152-release-1136-b39 amd64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Windows 10 10.0

1

Please attach screenshot with the error and provide idea.log and build.log with debug level enabled: https://intellij-support.jetbrains.com/hc/en-us/articles/207241085.

Try if it helps to delete IDE caches/compiler directory.

Try also 2018.2 from https://www.jetbrains.com/idea/nextversion.

0
Avatar
Permanently deleted user

Here's a scrubbed log:
2018-07-09 10:20:49,378 [ 14497] DEBUG - s.incremental.java.JavaBuilder - Compiling chunk [XXX] with options: "-g -deprecation -encoding UTF-8 -source 8 -target 8 -s C:\XXX\java\gensrc\annotation-processing", mode=in-process
2018-07-09 10:20:57,417 [ 22536] INFO - s.incremental.java.JavaBuilder - java.lang.StackOverflowError
java.lang.RuntimeException: java.lang.StackOverflowError
at com.sun.tools.javac.main.Main.compile(Main.java:559)
at com.sun.tools.javac.api.JavacTaskImpl.doCall(JavacTaskImpl.java:129)
at com.sun.tools.javac.api.JavacTaskImpl.call(JavacTaskImpl.java:138)
at org.jetbrains.jps.javac.JavacMain.compile(JavacMain.java:198)
at org.jetbrains.jps.incremental.java.JavaBuilder.compileJava(JavaBuilder.java:453)
at org.jetbrains.jps.incremental.java.JavaBuilder.compile(JavaBuilder.java:317)
at org.jetbrains.jps.incremental.java.JavaBuilder.doBuild(JavaBuilder.java:244)
at org.jetbrains.jps.incremental.java.JavaBuilder.build(JavaBuilder.java:202)
at org.jetbrains.jps.incremental.IncProjectBuilder.runModuleLevelBuilders(IncProjectBuilder.java:1314)
at org.jetbrains.jps.incremental.IncProjectBuilder.runBuildersForChunk(IncProjectBuilder.java:991)
at org.jetbrains.jps.incremental.IncProjectBuilder.buildTargetsChunk(IncProjectBuilder.java:1063)
at org.jetbrains.jps.incremental.IncProjectBuilder.buildChunkIfAffected(IncProjectBuilder.java:954)
at org.jetbrains.jps.incremental.IncProjectBuilder.buildChunks(IncProjectBuilder.java:787)
at org.jetbrains.jps.incremental.IncProjectBuilder.runBuild(IncProjectBuilder.java:376)
at org.jetbrains.jps.incremental.IncProjectBuilder.build(IncProjectBuilder.java:183)
at org.jetbrains.jps.cmdline.BuildRunner.runBuild(BuildRunner.java:138)
at org.jetbrains.jps.cmdline.BuildSession.runBuild(BuildSession.java:308)
at org.jetbrains.jps.cmdline.BuildSession.run(BuildSession.java:137)
at org.jetbrains.jps.cmdline.BuildMain$MyMessageHandler.lambda$channelRead0$0(BuildMain.java:235)
at org.jetbrains.jps.service.impl.SharedThreadPoolImpl.lambda$executeOnPooledThread$0(SharedThreadPoolImpl.java:42)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.StackOverflowError
at org.jetbrains.jps.javac.ast.Javac8RefScanner.visitMemberSelect(Javac8RefScanner.java:17)
at org.jetbrains.jps.javac.ast.JavacTreeRefScanner.visitMemberSelect(JavacTreeRefScanner.java:35)
at com.sun.tools.javac.tree.JCTree$JCFieldAccess.accept(JCTree.java:1903)
at com.sun.source.util.TreeScanner.scan(TreeScanner.java:77)
at com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:81)
at com.sun.source.util.TreeScanner.visitMethodInvocation(TreeScanner.java:270)
at org.jetbrains.jps.javac.ast.JavacTreeRefScanner.visitMethodInvocation(JavacTreeRefScanner.java:163)
at org.jetbrains.jps.javac.ast.Javac8RefScanner.visitMethodInvocation(Javac8RefScanner.java:17)
at org.jetbrains.jps.javac.ast.JavacTreeRefScanner.visitMethodInvocation(JavacTreeRefScanner.java:35)
at com.sun.tools.javac.tree.JCTree$JCMethodInvocation.accept(JCTree.java:1477)
at com.sun.source.util.TreeScanner.scan(TreeScanner.java:77)
at com.sun.source.util.TreeScanner.visitMemberSelect(TreeScanner.java:346)
at org.jetbrains.jps.javac.ast.JavacTreeRefScanner.visitMemberSelect(JavacTreeRefScanner.java:99)
at org.jetbrains.jps.javac.ast.Javac8RefScanner.visitMemberSelect(Javac8RefScanner.java:17)
at org.jetbrains.jps.javac.ast.JavacTreeRefScanner.visitMemberSelect(JavacTreeRefScanner.java:35)
at com.sun.tools.javac.tree.JCTree$JCFieldAccess.accept(JCTree.java:1903)
at com.sun.source.util.TreeScanner.scan(TreeScanner.java:77)
at com.sun.source.util.TreeScanner.visitMemberSelect(TreeScanner.java:346)
at org.jetbrains.jps.javac.ast.JavacTreeRefScanner.visitMemberSelect(JavacTreeRefScanner.java:99)
at org.jetbrains.jps.javac.ast.Javac8RefScanner.visitMemberSelect(Javac8RefScanner.java:17)
at org.jetbrains.jps.javac.ast.JavacTreeRefScanner.visitMemberSelect(JavacTreeRefScanner.java:35)
at com.sun.tools.javac.tree.JCTree$JCFieldAccess.accept(JCTree.java:1903)
at com.sun.source.util.TreeScanner.scan(TreeScanner.java:77)
...

0
Avatar
Permanently deleted user

I'm using auto-value-1.4.1 which is what causes annotation processing. I'll see if I can reduce my code to a test case. I'll try 2018.2 too

0

Try also if it helps to increase stack size for compiler process (in Settings | Build, Execution, Deployment | Compiler | User-local build process VM options (overrides Shared options):) to e.g. -Xss4m.

5

请先登录再写评论。