исключение при завершении пользовательского мастера создания файлов в проекте RCP

Я работаю с пользовательским «мастером создания новых файлов». когда я нажимаю кнопку "Готово", я ожидаю, что затмение добавит новый файл и покажет его правильно, но вместо этого возникает исключение, и я не могу открыть созданный файл. Но если я использую этот мастер во второй раз, исключение не возникает, и файл открывается правильно. Почему?

исключение возникает при выполнении этой строки getContainer().run(true, false, op).

и это часть исключения:

!ENTRY org.eclipse.e4.ui.workbench 4 0 2012-07-28 16:15:01.239
!MESSAGE Unable to create class 'org.eclipse.ui.internal.e4.compatibility.CompatibilityEditor' from bundle '33'
!STACK 0
org.eclipse.e4.core.di.InjectionException: java.lang.IllegalArgumentException: can't find IDfind.ext
    at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:63)
    at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:857)
    at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:837)
    at org.eclipse.e4.core.internal.di.InjectorImpl.inject(InjectorImpl.java:111)
    at org.eclipse.e4.core.internal.di.InjectorImpl.internalMake(InjectorImpl.java:318)
    at org.eclipse.e4.core.internal.di.InjectorImpl.make(InjectorImpl.java:240)
    at org.eclipse.e4.core.contexts.ContextInjectionFactory.make(ContextInjectionFactory.java:161)
    at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.createFromBundle(ReflectionContributionFactory.java:102)
    at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.doCreate(ReflectionContributionFactory.java:71)
    at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.create(ReflectionContributionFactory.java:53)
    at org.eclipse.e4.ui.workbench.renderers.swt.ContributedPartRenderer.createWidget(ContributedPartRenderer.java:141)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createWidget(PartRenderingEngine.java:889)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:623)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:725)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$2(PartRenderingEngine.java:696)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$7.run(PartRenderingEngine.java:690)
.
.
.

person pashiman    schedule 28.07.2012    source источник


Ответы (1)


Итак, проблема в том, что для одного из плагинов, которые есть в вашем приложении, требуется маркер с именем find.ext. В журнале ошибок отображается IDfind.ext, поскольку сообщение об ошибке объединено без пробела.

Это происходит, если у вас есть пользовательское приложение. Решение довольно простое: найдите свой WindowActionBarAdvisor, который расширяет ActionBarAdvisor и определяет начальные меню и панели инструментов вашего приложения, такие как «Файл», «Справка» и т. д. и т. д.

Добавьте эту строку: menu.add(new GroupMarker(IWorkbenchActionConstants.FIND_EXT)); например в метод createEditMenu. или любой другой пункт меню.

person Chris    schedule 10.01.2013