2015-08-15 5 views
0

У меня есть грамматика Xtext, которая генерирует следующее исключение, когда я пытаюсь генерировать артефакты Xtext (он запускается и, в конце концов, генерирует исключение (исключения)).
Мои Outline (первые несколько строк):Xtext: Что означает это исключение?

0 [main] INFO lipse.emf.mwe.utils.StandaloneSetup - Registering platform uri 'C:\Users\Robert Adam\Documents\eclipse.luna\workspace' 
451 [main] INFO lipse.emf.mwe.utils.StandaloneSetup - Adding generated EPackage 'org.eclipse.xtext.xbase.XbasePackage' 
701 [main] INFO clipse.emf.mwe.utils.GenModelHelper - Registered GenModel 'http://www.eclipse.org/Xtext/Xbase/XAnnotations' from 'platform:/resource/org.eclipse.xtext.xbase/model/Xbase.genmodel' 
701 [main] INFO clipse.emf.mwe.utils.GenModelHelper - Registered GenModel 'http://www.eclipse.org/xtext/xbase/Xtype' from 'platform:/resource/org.eclipse.xtext.xbase/model/Xbase.genmodel' 
717 [main] INFO clipse.emf.mwe.utils.GenModelHelper - Registered GenModel 'http://www.eclipse.org/xtext/xbase/Xbase' from 'platform:/resource/org.eclipse.xtext.xbase/model/Xbase.genmodel' 
717 [main] INFO clipse.emf.mwe.utils.GenModelHelper - Registered GenModel 'http://www.eclipse.org/xtext/common/JavaVMTypes' from 'platform:/resource/org.eclipse.xtext.common.types/model/JavaVMTypes.genmodel' 
1904 [main] INFO lipse.emf.mwe.utils.StandaloneSetup - Adding generated EPackage 'org.eclipse.xtext.common.types.TypesPackage' 
1916 [main] INFO ipse.emf.mwe.utils.DirectoryCleaner - Cleaning C:\Users\Robert Adam\Documents\eclipse.luna\workspace\raven.sqf\..\raven.sqf\src-gen 
2076 [main] INFO ipse.emf.mwe.utils.DirectoryCleaner - Cleaning C:\Users\Robert Adam\Documents\eclipse.luna\workspace\raven.sqf\..\raven.sqf\model\generated 
2077 [main] INFO ipse.emf.mwe.utils.DirectoryCleaner - Cleaning C:\Users\Robert Adam\Documents\eclipse.luna\workspace\raven.sqf\..\raven.sqf.ui\src-gen 
2081 [main] INFO ipse.emf.mwe.utils.DirectoryCleaner - Cleaning C:\Users\Robert Adam\Documents\eclipse.luna\workspace\raven.sqf\..\raven.sqf.tests\src-gen 
8449 [main] INFO clipse.emf.mwe.utils.GenModelHelper - Registered GenModel 'http://www.SQF.raven' from 'platform:/resource/raven.sqf/model/generated/SQF.genmodel' 
164592 [main] INFO text.generator.junit.Junit4Fragment - generating Junit4 Test support classes 
164692 [main] INFO text.generator.junit.Junit4Fragment - generating Compare Framework infrastructure 
164707 [main] ERROR mf.mwe2.launch.runtime.Mwe2Launcher - Problems running workflow raven.GenerateSQF: 
[ERROR]: GeneratorException: (Element: -UNKNOWN-; Reported by: Generator) 
    org.eclipse.emf.common.util.WrappedException: java.lang.reflect.InvocationTargetException 
    at org.eclipse.xtext.generator.parser.antlr.AntlrToolFacade.runWithEncodingAndParams(AntlrToolFacade.java:183) 
    at org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment.generate(XtextAntlrGeneratorFragment.java:48) 
    at org.eclipse.xtext.generator.DefaultGeneratorFragment.generate(DefaultGeneratorFragment.java:167) 
    at org.eclipse.xtext.generator.CompositeGeneratorFragment.generate(CompositeGeneratorFragment.java:163) 
    at org.eclipse.xtext.generator.Generator.generate(Generator.java:555) 
    at org.eclipse.xtext.generator.Generator.invokeInternal(Generator.java:172) 
    at org.eclipse.emf.mwe.core.lib.AbstractWorkflowComponent.invoke(AbstractWorkflowComponent.java:126) 
    at org.eclipse.emf.mwe.core.lib.Mwe2Bridge.invoke(Mwe2Bridge.java:34) 
    at org.eclipse.emf.mwe.core.lib.AbstractWorkflowComponent.invoke(AbstractWorkflowComponent.java:201) 
    at org.eclipse.emf.mwe2.runtime.workflow.AbstractCompositeWorkflowComponent.invoke(AbstractCompositeWorkflowComponent.java:35) 
    at org.eclipse.emf.mwe2.runtime.workflow.Workflow.run(Workflow.java:19) 
    at org.eclipse.emf.mwe2.launch.runtime.Mwe2Runner.run(Mwe2Runner.java:102) 
    at org.eclipse.emf.mwe2.launch.runtime.Mwe2Runner.run(Mwe2Runner.java:62) 
    at org.eclipse.emf.mwe2.launch.runtime.Mwe2Runner.run(Mwe2Runner.java:52) 
    at org.eclipse.emf.mwe2.launch.runtime.Mwe2Launcher.run(Mwe2Launcher.java:78) 
    at org.eclipse.emf.mwe2.launch.runtime.Mwe2Launcher.main(Mwe2Launcher.java:36) 
Caused by: java.lang.reflect.InvocationTargetException 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at org.eclipse.xtext.generator.parser.antlr.AntlrToolFacade.runWithEncodingAndParams(AntlrToolFacade.java:173) 
    ... 15 more 
Caused by: java.lang.OutOfMemoryError: GC overhead limit exceeded 
    at java.util.HashMap.newTreeNode(Unknown Source) 
    at java.util.HashMap$TreeNode.putTreeVal(Unknown Source) 
    at java.util.HashMap.putVal(Unknown Source) 
    at java.util.HashMap.put(Unknown Source) 
    at java.util.HashSet.add(Unknown Source) 
    at org.antlr.misc.OrderedHashSet.add(OrderedHashSet.java:63) 
    at org.antlr.analysis.DFAState.addNFAConfiguration(DFAState.java:226) 
    at org.antlr.analysis.NFAToDFAConverter.closure(NFAToDFAConverter.java:633) 
    at org.antlr.analysis.NFAToDFAConverter.closure(NFAToDFAConverter.java:709) 
    at org.antlr.analysis.NFAToDFAConverter.closure(NFAToDFAConverter.java:709) 
    at org.antlr.analysis.NFAToDFAConverter.closure(NFAToDFAConverter.java:683) 
    at org.antlr.analysis.NFAToDFAConverter.closure(NFAToDFAConverter.java:709) 
    at org.antlr.analysis.NFAToDFAConverter.closure(NFAToDFAConverter.java:709) 
    at org.antlr.analysis.NFAToDFAConverter.closure(NFAToDFAConverter.java:765) 
    at org.antlr.analysis.NFAToDFAConverter.closure(NFAToDFAConverter.java:709) 
    at org.antlr.analysis.NFAToDFAConverter.closure(NFAToDFAConverter.java:709) 
    at org.antlr.analysis.NFAToDFAConverter.closure(NFAToDFAConverter.java:683) 
    at org.antlr.analysis.NFAToDFAConverter.closure(NFAToDFAConverter.java:709) 
    at org.antlr.analysis.NFAToDFAConverter.closure(NFAToDFAConverter.java:709) 
    at org.antlr.analysis.NFAToDFAConverter.closure(NFAToDFAConverter.java:709) 
    at org.antlr.analysis.NFAToDFAConverter.closure(NFAToDFAConverter.java:683) 
    at org.antlr.analysis.NFAToDFAConverter.closure(NFAToDFAConverter.java:709) 
    at org.antlr.analysis.NFAToDFAConverter.closure(NFAToDFAConverter.java:709) 
    at org.antlr.analysis.NFAToDFAConverter.closure(NFAToDFAConverter.java:765) 
    at org.antlr.analysis.NFAToDFAConverter.closure(NFAToDFAConverter.java:765) 
    at org.antlr.analysis.NFAToDFAConverter.closure(NFAToDFAConverter.java:765) 
    at org.antlr.analysis.NFAToDFAConverter.closure(NFAToDFAConverter.java:709) 
    at org.antlr.analysis.NFAToDFAConverter.closure(NFAToDFAConverter.java:709) 
    at org.antlr.analysis.NFAToDFAConverter.closure(NFAToDFAConverter.java:683) 
    at org.antlr.analysis.NFAToDFAConverter.closure(NFAToDFAConverter.java:709) 
    at org.antlr.analysis.NFAToDFAConverter.closure(NFAToDFAConverter.java:709) 
    at org.antlr.analysis.NFAToDFAConverter.closure(NFAToDFAConverter.java:709) 

Я думаю, что проблема вызвана проблема с памятью ... Правильно ли это? И если да, то как я могу избежать этого?

С наилучшими пожеланиями Raven

ответ

1

ГХ бросает это исключение, когда слишком много времени тратится на сборку мусора, слишком мало возврата, например. 98% времени процессора тратится на GC и восстанавливается менее 2% кучи.

Эта функция предназначена для предотвращения запуска приложений в течение продолжительного периода времени, в то же время мало или совсем не продвигаясь, потому что куча слишком мала.

Вы можете попытаться увеличить размер кучи с -Xmx1g (задает кучу на 1 гигабайт)

Или вы можете просто выключить с помощью опции командной строки -XX: -UseGCOverheadLimit, скрывающего симптом, но не устраняет проблему.

Эта функция подробно описана здесь: http://www.oracle.com/technetwork/java/javase/gc-tuning-6-140523.html#par_gc.oom

+0

Спасибо, но ничего из этого не работает для меня ... Я уже Xmx: 2048m и ни увеличивая ее не 4g или 7g и не уменьшая его до 1 г работал. И выключение тоже не имело никакого эффекта. Я указал их в моем eclipse.ini, возможно, это проблема? – Raven

+0

Создает ли eclipse новый jvm для процесса? Если это так, вам нужно будет добавить аргументы в эту команду запуска jvm. См. Это [ссылка] (http://help.eclipse.org/luna/index.jsp?topic=%2Forg.eclipse.jdt.doc.user%2Ftasks%2Ftasks-java-local-configuration.htm) для eclipse luna – Sam

+0

Да, это была проблема. Большое спасибо за поддержку. – Raven

Смежные вопросы