【发布时间】:2018-05-27 10:52:22
【问题描述】:
在 Intellij IDEA 2017.2 中构建项目时,我有一个 StackOverflowError。在我放弃所有 IDEA 设置并重新开始我的项目后,它开始发生。
构建日志有以下内容:
2017-12-13 14:59:55,043 [ 16299] INFO - .incremental.IncProjectBuilder - Building project; isRebuild:false; isMake:true parallel compilation:false
2017-12-13 14:59:55,043 [ 16299] INFO - kotlin.jps.build.KotlinBuilder - is Kotlin incremental compilation enabled: true
2017-12-13 14:59:55,043 [ 16299] INFO - kotlin.jps.build.KotlinBuilder - is Kotlin experimental incremental compilation enabled: true
2017-12-13 14:59:55,060 [ 16316] INFO - kotlin.jps.build.KotlinBuilder - is Kotlin compiler daemon enabled: true
2017-12-13 14:59:55,060 [ 16316] INFO - kotlin.jps.build.KotlinBuilder - Label in local history: build started 2019016a
2017-12-13 14:59:55,066 [ 16322] INFO - CompilerBackwardReferenceIndex - backward reference index version differ due to: class java.io.FileNotFoundException
2017-12-13 14:59:55,080 [ 16336] INFO - .incremental.IncProjectBuilder - Cleaned output directories in 14 ms
2017-12-13 14:59:55,346 [ 16602] INFO - .incremental.IncProjectBuilder - maven-resources-test:project-common: java.lang.StackOverflowError
org.jetbrains.jps.incremental.ProjectBuildException: maven-resources-test:project-common: java.lang.StackOverflowError
at org.jetbrains.jps.incremental.IncProjectBuilder.buildTargetsChunk(IncProjectBuilder.java:1035)
at org.jetbrains.jps.incremental.IncProjectBuilder.buildChunkIfAffected(IncProjectBuilder.java:900)
at org.jetbrains.jps.incremental.IncProjectBuilder.buildChunks(IncProjectBuilder.java:733)
at org.jetbrains.jps.incremental.IncProjectBuilder.runBuild(IncProjectBuilder.java:385)
at org.jetbrains.jps.incremental.IncProjectBuilder.build(IncProjectBuilder.java:192)
at org.jetbrains.jps.cmdline.BuildRunner.runBuild(BuildRunner.java:138)
at org.jetbrains.jps.cmdline.BuildSession.runBuild(BuildSession.java:295)
at org.jetbrains.jps.cmdline.BuildSession.run(BuildSession.java:125)
at org.jetbrains.jps.cmdline.BuildMain$MyMessageHandler.lambda$channelRead0$0(BuildMain.java:236)
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:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.StackOverflowError
at com.intellij.util.io.PagedFileStorage.getByteBuffer(PagedFileStorage.java:193)
at com.intellij.util.io.IntToIntBtree$BtreePage.syncWithStore(IntToIntBtree.java:332)
at com.intellij.util.io.IntToIntBtree$BtreePage.setAddress(IntToIntBtree.java:321)
at com.intellij.util.io.IntToIntBtree.processLeafPages(IntToIntBtree.java:1178)
at com.intellij.util.io.IntToIntBtree.processLeafPages(IntToIntBtree.java:1179)
at com.intellij.util.io.IntToIntBtree.processLeafPages(IntToIntBtree.java:1179)
at com.intellij.util.io.IntToIntBtree.processLeafPages(IntToIntBtree.java:1179)
还有更多同样的方法调用。在堆栈跟踪结束时:
2017-12-13 14:59:56,059 [ 0] INFO - etbrains.jps.cmdline.BuildMain - Build process started. Classpath: C:/path/to/idea/lib/jps-launcher.jar;C:/path/to/jdk/lib/tools.jar;C:/path/to/idea/lib/optimizedFileManager.jar
2017-12-13 14:59:56,150 [ 91] INFO - til.internal.PlatformDependent - Your platform does not provide complete low-level API for accessing direct buffers reliably. Unless explicitly requested, heap buffer will always be preferred to avoid potential system instability.
2017-12-13 14:59:56,528 [ 469] INFO - etbrains.jps.cmdline.BuildMain - Connection to IDE established in 439 ms
2017-12-13 14:59:56,544 [ 485] INFO - penapi.util.io.win32.IdeaWin32 - Native filesystem for Windows is operational
2017-12-13 14:59:56,545 [ 486] INFO - jps.cmdline.JpsModelLoaderImpl - Loading model: project path = /path/to/project, global options path = path/to/options
2017-12-13 14:59:57,128 [ 1069] INFO - jps.cmdline.JpsModelLoaderImpl - Model loaded in 583 ms
2017-12-13 14:59:57,128 [ 1069] INFO - jps.cmdline.JpsModelLoaderImpl - Project has 11 modules, 179 libraries
2017-12-13 14:59:57,316 [ 1257] INFO - ellij.util.io.PagedFileStorage - lower=100; upper=500; buffer=10; max=3536
2017-12-13 14:59:57,512 [ 1453] INFO - etbrains.jps.cmdline.BuildMain - Pre-loaded process ready in 1453 ms
我发现了一个类似的问题 - IntelliJ IDEA: StackOverflowError on Build Project,但那里的解决方案 - 设置 -Xss4m 对我没有帮助。
我认为这个错误可能在某种程度上与我的settings.xml Maven 文件有关,因为我在清除 IDEA 的设置后对其进行了修改。但是,我不明白为什么会导致这个错误。
我非常感谢任何关于这个主题的帮助。
【问题讨论】:
-
您在没有 maven 的新项目中是否面临同样的问题?切换到默认的 settings.xml 有帮助吗?
-
@y.bedrov 切换到默认 settings.xml 会导致该项目出现同样的问题。但是,当前的 settings.xml 和全新的 maven 项目可以很好地协同工作。
标签: maven intellij-idea build stack-overflow