【问题标题】:Intellij IDEA: StackOverflowError on building projectIntellij IDEA:构建项目时出现 StackOverflowError
【发布时间】: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


【解决方案1】:

解决方案(一个非常简单的解决方案)是完全重新安装 IDEA,同时删除所有配置和插件。在保持配置的同时重新安装 IDEA 以前没有用过,所以很可能我的设置文件中有一些错误配置。

【讨论】:

    【解决方案2】:

    我在反复加载和卸载模块后遇到了这个问题。更改堆栈大小并没有帮助,并且使用 Maven 从命令行进行构建。

    我做了 File->Invalidate Caches / Restart... 并修复了它。

    【讨论】:

    • 谢谢,我试过这样做,但没有帮助。帮助我的解决方案只是按照接受的答案中的描述完全重新安装 IDEA。
    • 我做到了,+ 重新导入所有 maven 项目,它对我有用。我在 IntelliJ 构建输出中有错误消息,但在 /Users/(myuser)/Library/Logs/IntelliJIdea2018.2 中没有。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-17
    • 2014-07-12
    • 1970-01-01
    • 1970-01-01
    • 2022-11-01
    相关资源
    最近更新 更多