使用StackOverflowError保存大型Java枚举文件时,Eclipse Mars崩溃

时间:2015-08-30 15:50:36

标签: eclipse

我只是简单地保存一个带有大枚举的Java文件(文件中共有1474行,这是枚举常量,包括一些换行符和一些其他代码),每次Eclipse Mars与以下日志崩溃。一旦我重新启动eclipse,实际上保存了文件。有什么想法吗?谢谢!

!MESSAGE Save Failed
!STACK 0
java.lang.StackOverflowError
    at org.eclipse.jdt.internal.formatter.TokenManager.get(TokenManager.java:68)
    at org.eclipse.jdt.internal.formatter.linewrap.WrapExecutor.getWrapIndent(WrapExecutor.java:647)
    at org.eclipse.jdt.internal.formatter.linewrap.WrapExecutor$LineAnalyzer.token(WrapExecutor.java:141)
    at org.eclipse.jdt.internal.formatter.TokenTraverser.traverse(TokenTraverser.java:103)
    at org.eclipse.jdt.internal.formatter.TokenManager.traverse(TokenManager.java:378)
    at org.eclipse.jdt.internal.formatter.linewrap.WrapExecutor$LineAnalyzer.analyzeLine(WrapExecutor.java:123)
    at org.eclipse.jdt.internal.formatter.linewrap.WrapExecutor.findWraps(WrapExecutor.java:381)
    at org.eclipse.jdt.internal.formatter.linewrap.WrapExecutor.findWrapsCached(WrapExecutor.java:366)
    at org.eclipse.jdt.internal.formatter.linewrap.WrapExecutor.findWraps(WrapExecutor.java:449)
    at org.eclipse.jdt.internal.formatter.linewrap.WrapExecutor.findWrapsCached(WrapExecutor.java:366)
    at org.eclipse.jdt.internal.formatter.linewrap.WrapExecutor.findWraps(WrapExecutor.java:449)
    at org.eclipse.jdt.internal.formatter.linewrap.WrapExecutor.findWrapsCached(WrapExecutor.java:366)
    at org.eclipse.jdt.internal.formatter.linewrap.WrapExecutor.findWraps(WrapExecutor.java:449)
    at org.eclipse.jdt.internal.formatter.linewrap.WrapExecutor.findWrapsCached(WrapExecutor.java:366)
    at org.eclipse.jdt.internal.formatter.linewrap.WrapExecutor.findWraps(WrapExecutor.java:449)
    at org.eclipse.jdt.internal.formatter.linewrap.WrapExecutor.findWrapsCached(WrapExecutor.java:366)
    at org.eclipse.jdt.internal.formatter.linewrap.WrapExecutor.findWraps(WrapExecutor.java:449)
    at org.eclipse.jdt.internal.formatter.linewrap.WrapExecutor.findWrapsCached(WrapExecutor.java:366)
    at org.eclipse.jdt.internal.formatter.linewrap.WrapExecutor.findWraps(WrapExecutor.java:449)
    at org.eclipse.jdt.internal.formatter.linewrap.WrapExecutor.findWrapsCached(WrapExecutor.java:366)
    at org.eclipse.jdt.internal.formatter.linewrap.WrapExecutor.findWraps(WrapExecutor.java:449)

.....

1 个答案:

答案 0 :(得分:1)

我已将此提交为错误:https://bugs.eclipse.org/bugs/show_bug.cgi?id=476960

可以在日食跟踪器中跟踪分辨率

应该在4.5.1中修复(您可以从http://download.eclipse.org/eclipse/downloads/下载最新的候选版本。)

或者您可以使用以下解决方法之一:

  1. 设置方法声明的换行策略 - >声明"不要包装"。
  2. 暂时将缩进策略更改为空格,确保缩进大小和制表符大小相同,然后仅切换回制表符。