2011-01-25 112 views
6

當我在netbeans中格式化代碼時,我最近開始得到一個「OutOfMemoryError:Java heap space」錯誤。Netbeans OutOfMemoryError:Java堆空間,代碼格式化

我已經使用netbeans超過2年了,這只是開始發生在我開發的典型機器上。目前在XP機器上使用6.9版本,4Gb內存。我將-J-Xmx調整到了1024米,甚至嘗試了2048米,並且仍然出現錯誤。

這是一個小小的php腳本,少於100行。過去在沒有編輯-J-Xmx或任何其他格式的情況下,我沒有任何問題。我沒有運行任何代碼或調試或單元測試或任何東西,只是內置的Source - > Format。

我試過刪除代碼,看看是否有導致問題的特定部分。從我可以收集的內容來看,如果我添加一個控制結構,無論它包含什麼內容,都會出現內存錯誤。

即使:

if($i == 1) {} 

使存儲器錯誤。如果我檢查內存使用情況,Netbeans可以使用所有內存。任何幫助,將不勝感激。

這裏產生的堆棧跟蹤,當我得到的錯誤:

java.lang.OutOfMemoryError: Java heap space 
    at org.netbeans.modules.php.editor.indent.FormatVisitor.addFormatToken(FormatVisitor.java:1002) 
    at org.netbeans.modules.php.editor.indent.FormatVisitor.visit(FormatVisitor.java:859) 
    at org.netbeans.modules.php.editor.parser.astnodes.Program.accept(Program.java:92) 
    at org.netbeans.modules.php.editor.indent.TokenFormatter$1.run(TokenFormatter.java:354) 
    at org.netbeans.editor.GuardedDocument.runAtomic(GuardedDocument.java:314) 
    at org.netbeans.modules.php.editor.indent.TokenFormatter.reformat(TokenFormatter.java:344) 
    at org.netbeans.modules.php.editor.indent.PHPFormatter.reformat(PHPFormatter.java:129) 
    at org.netbeans.modules.csl.core.GsfReformatTask$1.run(GsfReformatTask.java:105) 
    at org.netbeans.modules.parsing.api.ParserManager$UserTaskAction.run(ParserManager.java:154) 
    at org.netbeans.modules.parsing.api.ParserManager$UserTaskAction.run(ParserManager.java:138) 
    at org.netbeans.modules.parsing.impl.TaskProcessor$1.call(TaskProcessor.java:200) 
    at org.netbeans.modules.parsing.impl.TaskProcessor$1.call(TaskProcessor.java:197) 
    at org.netbeans.modules.masterfs.filebasedfs.utils.FileChangedManager.priorityIO(FileChangedManager.java:160) 
    at org.netbeans.modules.masterfs.providers.ProvidedExtensions.priorityIO(ProvidedExtensions.java:227) 
    at org.netbeans.modules.parsing.impl.Utilities.runPriorityIO(Utilities.java:66) 
    at org.netbeans.modules.parsing.impl.TaskProcessor.runUserTask(TaskProcessor.java:197) 
    at org.netbeans.modules.parsing.api.ParserManager.parse(ParserManager.java:106) 
    at org.netbeans.modules.csl.core.GsfReformatTask.reformat(GsfReformatTask.java:95) 
    at org.netbeans.modules.editor.indent.TaskHandler$MimeItem.runTask(TaskHandler.java:550) 
    at org.netbeans.modules.editor.indent.TaskHandler.runTasks(TaskHandler.java:317) 
    at org.netbeans.modules.editor.indent.IndentImpl.reformat(IndentImpl.java:320) 
    at org.netbeans.modules.editor.indent.FormatterImpl.reformat(FormatterImpl.java:190) 
    at org.netbeans.editor.ActionFactory$FormatAction$1$1.run(ActionFactory.java:1683) 
    at org.netbeans.editor.GuardedDocument.runAtomicAsUser(GuardedDocument.java:344) 
    at org.netbeans.editor.ActionFactory$FormatAction$1.run(ActionFactory.java:1651) 
    at org.netbeans.modules.progress.ui.RunOffEDTImpl$1.run(RunOffEDTImpl.java:160) 
    at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:1418) 
    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:1957) 

貌似有一噸的這個問題類似的報道: http://statistics.netbeans.org/analytics/exception.do?id=472651

安裝7.0B和重新安裝JRE 6 ..現在工作正常。使用7作爲6.9在使用代碼格式時不可用。仍然想弄清楚如何解決這個問題。

+0

我剛剛得到了這個問題!所以pi ** ed!你有沒有發現它可能是什麼?或者我將不得不重新安裝每晚構建或7.0 beta版本? – zaf 2011-02-10 17:18:00

+0

我每晚去了7.0,比6.1或7b更不穩定。現在正在運行的是完全卸載6.9,包括所有首選項。然後重新安裝。這是一個巨大的痛苦,尤其是如果你有一堆保存FTP配置文件,但它一直在工作。否則,打開現有項目很容易。 – Jestep 2011-02-16 18:10:39

回答

3

我找到了this NetBeans bug,它報告了一個類似於你的問題。事實證明,這個問題與SVN有關,並且通過清除SVN緩存目錄而得到解決。詳細閱讀錯誤的「評論」。