2011-11-23 1 views
2

Xtext 프레임 워크를 사용하여 내 DSL을 지원하는 Eclipse 플러그인을 개발 중입니다. 내가 일치하는 파일 확장자 .gf 내 시스템에 파일을 열려고하면 은 - -하지만 내 작업 공간에서하지 않은 나는 다음과 같은 얻을 :Xtext 기반 플러그인에서 작업 영역 - 외부 파일을 열 수 없습니다.

 
0 [main] ERROR org.eclipse.xtext.ui.editor.CompoundXtextEditorCallback - Was configured with another client or not configured at all. 
java.lang.IllegalStateException: Was configured with another client or not configured at all. 
    at org.eclipse.xtext.ui.editor.DirtyStateEditorSupport.removeDirtyStateSupport(DirtyStateEditorSupport.java:318) 
    at org.eclipse.xtext.ui.editor.AbstractDirtyStateAwareEditorCallback.beforeDispose(AbstractDirtyStateAwareEditorCallback.java:38) 
    at org.eclipse.xtext.ui.editor.CompoundXtextEditorCallback.beforeDispose(CompoundXtextEditorCallback.java:69) 
    at org.eclipse.xtext.ui.editor.XtextEditor.dispose(XtextEditor.java:469) 
    at org.eclipse.ui.internal.EditorReference.createPartHelper(EditorReference.java:705) 
    at org.eclipse.ui.internal.EditorReference.createPart(EditorReference.java:465) 
    at org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:595) 
    at org.eclipse.ui.internal.EditorReference.getEditor(EditorReference.java:289) 
    at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched(WorkbenchPage.java:2945) 
    at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(WorkbenchPage.java:2850) 
    at org.eclipse.ui.internal.WorkbenchPage.access$11(WorkbenchPage.java:2842) 
    at org.eclipse.ui.internal.WorkbenchPage$10.run(WorkbenchPage.java:2793) 
    at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) 
    at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2789) 
    at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2773) 
    at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2756) 
    at org.eclipse.ui.ide.IDE.openEditorOnFileStore(IDE.java:1155) 
    at org.eclipse.ui.internal.ide.actions.OpenLocalFileAction.run(OpenLocalFileAction.java:107) 
    at org.eclipse.ui.internal.ide.actions.OpenLocalFileAction.run(OpenLocalFileAction.java:76) 
    at org.eclipse.ui.internal.PluginAction.runWithEvent(PluginAction.java:251) 
    at org.eclipse.ui.internal.WWinPluginAction.runWithEvent(WWinPluginAction.java:229) 
    at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:584) 
    at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:501) 
    at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:411) 
    at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) 
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1258) 
    at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3588) 
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3209) 
    at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2696) 
    at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2660) 
    at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2494) 
    at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:674) 
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) 
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:667) 
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) 
    at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:123) 
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) 
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) 
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) 
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344) 
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:616) 
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622) 
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577) 
    at org.eclipse.equinox.launcher.Main.run(Main.java:1410) 
    at org.eclipse.equinox.launcher.Main.main(Main.java:1386) 
!SESSION 2011-11-23 09:51:54.342 ----------------------------------------------- 
eclipse.buildId=I20110613-1736 
java.version=1.6.0_23 
java.vendor=Sun Microsystems Inc. 
BootLoader constants: OS=linux, ARCH=x86, WS=gtk, NL=en_US 
Framework arguments: -product org.eclipse.sdk.ide 
Command-line arguments: -product org.eclipse.sdk.ide -data /home/john/repositories/gf-eclipse-plugin/workspace/../workspace-demo -dev file:/home/john/repositories/gf-eclipse-plugin/workspace/.metadata/.plugins/org.eclipse.pde.core/Eclipse Application/dev.properties -os linux -ws gtk -arch x86 -consoleLog 

!ENTRY org.apache.log4j 4 0 2011-11-23 09:52:18.914 
!MESSAGE org.eclipse.xtext.ui.editor.CompoundXtextEditorCallback - Was configured with another client or not configured at all. 

!STACK 0 
java.lang.IllegalStateException: Was configured with another client or not configured at all. 
    at org.eclipse.xtext.ui.editor.DirtyStateEditorSupport.removeDirtyStateSupport(DirtyStateEditorSupport.java:318) 
    at org.eclipse.xtext.ui.editor.AbstractDirtyStateAwareEditorCallback.beforeDispose(AbstractDirtyStateAwareEditorCallback.java:38) 
    at org.eclipse.xtext.ui.editor.CompoundXtextEditorCallback.beforeDispose(CompoundXtextEditorCallback.java:69) 
    at org.eclipse.xtext.ui.editor.XtextEditor.dispose(XtextEditor.java:469) 
    at org.eclipse.ui.internal.EditorReference.createPartHelper(EditorReference.java:705) 
    at org.eclipse.ui.internal.EditorReference.createPart(EditorReference.java:465) 
    at org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:595) 
    at org.eclipse.ui.internal.EditorReference.getEditor(EditorReference.java:289) 
    at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched(WorkbenchPage.java:2945) 
    at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(WorkbenchPage.java:2850) 
    at org.eclipse.ui.internal.WorkbenchPage.access$11(WorkbenchPage.java:2842) 
    at org.eclipse.ui.internal.WorkbenchPage$10.run(WorkbenchPage.java:2793) 
    at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) 
    at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2789) 
    at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2773) 
    at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2756) 
    at org.eclipse.ui.ide.IDE.openEditorOnFileStore(IDE.java:1155) 
    at org.eclipse.ui.internal.ide.actions.OpenLocalFileAction.run(OpenLocalFileAction.java:107) 
    at org.eclipse.ui.internal.ide.actions.OpenLocalFileAction.run(OpenLocalFileAction.java:76) 
    at org.eclipse.ui.internal.PluginAction.runWithEvent(PluginAction.java:251) 
    at org.eclipse.ui.internal.WWinPluginAction.runWithEvent(WWinPluginAction.java:229) 
    at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:584) 
    at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:501) 
    at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:411) 
    at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) 
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1258) 
    at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3588) 
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3209) 
    at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2696) 
    at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2660) 
    at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2494) 
    at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:674) 
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) 
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:667) 
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) 
    at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:123) 
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) 
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) 
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) 
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344) 
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:616) 
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622) 
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577) 
    at org.eclipse.equinox.launcher.Main.run(Main.java:1410) 
    at org.eclipse.equinox.launcher.Main.main(Main.java:1386) 

!ENTRY org.eclipse.ui 4 0 2011-11-23 09:52:18.921 
!MESSAGE Unable to create editor ID org.grammaticalframework.eclipse.GF: An unexpected exception was thrown. 
!STACK 0 
java.lang.NullPointerException 
    at org.eclipse.xtext.ui.editor.folding.DefaultFoldingStructureProvider.handleProjectionEnabled(DefaultFoldingStructureProvider.java:100) 
    at org.eclipse.xtext.ui.editor.folding.DefaultFoldingStructureProvider$ProjectionChangeListener.projectionEnabled(DefaultFoldingStructureProvider.java:186) 
    at org.eclipse.jface.text.source.projection.ProjectionViewer.fireProjectionEnabled(ProjectionViewer.java:489) 
    at org.eclipse.jface.text.source.projection.ProjectionViewer.enableProjection(ProjectionViewer.java:537) 
    at org.eclipse.jface.text.source.projection.ProjectionViewer.doOperation(ProjectionViewer.java:1441) 
    at org.eclipse.xtext.ui.editor.XtextEditor.installFoldingSupport(XtextEditor.java:439) 
    at org.eclipse.xtext.ui.editor.XtextEditor.createPartControl(XtextEditor.java:421) 
    at org.eclipse.ui.internal.EditorReference.createPartHelper(EditorReference.java:670) 
    at org.eclipse.ui.internal.EditorReference.createPart(EditorReference.java:465) 
    at org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:595) 
    at org.eclipse.ui.internal.EditorReference.getEditor(EditorReference.java:289) 
    at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched(WorkbenchPage.java:2945) 
    at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(WorkbenchPage.java:2850) 
    at org.eclipse.ui.internal.WorkbenchPage.access$11(WorkbenchPage.java:2842) 
    at org.eclipse.ui.internal.WorkbenchPage$10.run(WorkbenchPage.java:2793) 
    at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) 
    at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2789) 
    at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2773) 
    at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2756) 
    at org.eclipse.ui.ide.IDE.openEditorOnFileStore(IDE.java:1155) 
    at org.eclipse.ui.internal.ide.actions.OpenLocalFileAction.run(OpenLocalFileAction.java:107) 
    at org.eclipse.ui.internal.ide.actions.OpenLocalFileAction.run(OpenLocalFileAction.java:76) 
    at org.eclipse.ui.internal.PluginAction.runWithEvent(PluginAction.java:251) 
    at org.eclipse.ui.internal.WWinPluginAction.runWithEvent(WWinPluginAction.java:229) 
    at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:584) 
    at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:501) 
    at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:411) 
    at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) 
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1258) 
    at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3588) 
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3209) 
    at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2696) 
    at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2660) 
    at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2494) 
    at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:674) 
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) 
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:667) 
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) 
    at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:123) 
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) 
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) 
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) 
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344) 
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:616) 
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622) 
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577) 
    at org.eclipse.equinox.launcher.Main.run(Main.java:1410) 
    at org.eclipse.equinox.launcher.Main.main(Main.java:1386) 

!ENTRY org.eclipse.ui 2 2 2011-11-23 09:52:19.105 
!MESSAGE Ignored attempt to add saveable that was already registered 
!STACK 0 
org.eclipse.core.runtime.AssertionFailedException: unknown saveable: [email protected] from part: org.[email protected] 
    at org.eclipse.ui.internal.SaveablesList.logWarning(SaveablesList.java:187) 
    at org.eclipse.ui.internal.SaveablesList.addModel(SaveablesList.java:117) 
    at org.eclipse.ui.internal.SaveablesList.addModels(SaveablesList.java:289) 
    at org.eclipse.ui.internal.SaveablesList.postOpen(SaveablesList.java:695) 
    at org.eclipse.ui.internal.PartList.partOpened(PartList.java:234) 
    at org.eclipse.ui.internal.PartList.access$0(PartList.java:210) 
    at org.eclipse.ui.internal.PartList$1.propertyChanged(PartList.java:40) 
    at org.eclipse.ui.internal.WorkbenchPartReference.fireInternalPropertyChange(WorkbenchPartReference.java:375) 
    at org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:610) 
    at org.eclipse.ui.internal.EditorReference.getEditor(EditorReference.java:289) 
    at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched(WorkbenchPage.java:2945) 
    at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(WorkbenchPage.java:2850) 
    at org.eclipse.ui.internal.WorkbenchPage.access$11(WorkbenchPage.java:2842) 
    at org.eclipse.ui.internal.WorkbenchPage$10.run(WorkbenchPage.java:2793) 
    at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) 
    at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2789) 
    at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2773) 
    at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2756) 
    at org.eclipse.ui.ide.IDE.openEditorOnFileStore(IDE.java:1155) 
    at org.eclipse.ui.internal.ide.actions.OpenLocalFileAction.run(OpenLocalFileAction.java:107) 
    at org.eclipse.ui.internal.ide.actions.OpenLocalFileAction.run(OpenLocalFileAction.java:76) 
    at org.eclipse.ui.internal.PluginAction.runWithEvent(PluginAction.java:251) 
    at org.eclipse.ui.internal.WWinPluginAction.runWithEvent(WWinPluginAction.java:229) 
    at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:584) 
    at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:501) 
    at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:411) 
    at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) 
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1258) 
    at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3588) 
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3209) 
    at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2696) 
    at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2660) 
    at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2494) 
    at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:674) 
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) 
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:667) 
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) 
    at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:123) 
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) 
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) 
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) 
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344) 
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:616) 
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622) 
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577) 
    at org.eclipse.equinox.launcher.Main.run(Main.java:1410) 
    at org.eclipse.equinox.launcher.Main.main(Main.java:1386) 

나는 프로그램이 작업을 수행하려고했지만, 나는 얻을 파일 UI 메뉴를 사용하여 열 때 동일한 오류가 발생했습니다. 어떤 아이디어?

답변

1

글쎄, 난 here 설명한 프로젝트 내에서 외부 리소스에 대한 링크를 만들어 프로그래밍 방식으로 문제를 해결할 수있었습니다.

내 (요약) 코드는 다음과 같습니다

IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject("Functors"); 
IPath externalPath = new Path(extPath); 
String localLink = ".external" + java.io.File.separator + externalPath.lastSegment(); 
IFile link = project.getFile(localLink); 
link.createLink(externalPath, IResource.NONE, null);