Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 333699 - [Compatibility] Cannot open external editors on FileStoreEditorInputs
Summary: [Compatibility] Cannot open external editors on FileStoreEditorInputs
Status: VERIFIED FIXED
Alias: None
Product: e4
Classification: Eclipse Project
Component: UI (show other bugs)
Version: 1.0   Edit
Hardware: All All
: P3 major (vote)
Target Milestone: 4.1 M5   Edit
Assignee: Remy Suen CLA
QA Contact: Remy Suen CLA
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 333742
  Show dependency tree
 
Reported: 2011-01-06 16:13 EST by Remy Suen CLA
Modified: 2011-01-26 09:36 EST (History)
0 users

See Also:


Attachments
WorkbenchPage patch v1 (1.41 KB, patch)
2011-01-07 09:04 EST, Remy Suen CLA
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Remy Suen CLA 2011-01-06 16:13:14 EST
I installed MoDisco into M4a and now the 'Error Log' view's 'Open Log' tool item won't work.

According to the 'Content Types' preference page, *.log files seems to be locked by MoDisco. I'll try on 3.x and see what happens...

java.lang.NullPointerException
	at org.eclipse.ui.internal.WorkbenchPlugin.createExtension(WorkbenchPlugin.java:263)
	at org.eclipse.ui.internal.registry.EditorDescriptor.createEditor(EditorDescriptor.java:235)
	at org.eclipse.ui.internal.EditorReference.createPart(EditorReference.java:292)
	at org.eclipse.ui.internal.e4.compatibility.CompatibilityPart.create(CompatibilityPart.java:167)
	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.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:52)
	at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:828)
	at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:808)
	at org.eclipse.e4.core.internal.di.InjectorImpl.inject(InjectorImpl.java:108)
	at org.eclipse.e4.core.internal.di.InjectorImpl.internalMake(InjectorImpl.java:310)
	at org.eclipse.e4.core.internal.di.InjectorImpl.make(InjectorImpl.java:237)
	at org.eclipse.e4.core.contexts.ContextInjectionFactory.make(ContextInjectionFactory.java:153)
	at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.createFromBundle(ReflectionContributionFactory.java:90)
	at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.doCreate(ReflectionContributionFactory.java:64)
	at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.create(ReflectionContributionFactory.java:53)
	at org.eclipse.e4.ui.workbench.renderers.swt.ContributedPartRenderer.createWidget(ContributedPartRenderer.java:117)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createWidget(PartRenderingEngine.java:697)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:496)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:573)
	at org.eclipse.e4.ui.workbench.renderers.swt.StackRenderer.showTab(StackRenderer.java:512)
	at org.eclipse.e4.ui.workbench.renderers.swt.LazyStackRenderer$1.handleEvent(LazyStackRenderer.java:74)
	at org.eclipse.e4.ui.services.internal.events.UIEventHandler.handleEvent(UIEventHandler.java:41)
	at org.eclipse.equinox.internal.event.EventHandlerWrapper.handleEvent(EventHandlerWrapper.java:197)
	at org.eclipse.equinox.internal.event.EventHandlerTracker.dispatchEvent(EventHandlerTracker.java:197)
	at org.eclipse.equinox.internal.event.EventHandlerTracker.dispatchEvent(EventHandlerTracker.java:1)
	at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
	at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148)
	at org.eclipse.equinox.internal.event.EventAdminImpl.dispatchEvent(EventAdminImpl.java:135)
	at org.eclipse.equinox.internal.event.EventAdminImpl.sendEvent(EventAdminImpl.java:78)
	at org.eclipse.equinox.internal.event.EventComponent.sendEvent(EventComponent.java:39)
	at org.eclipse.e4.ui.services.internal.events.EventBroker.send(EventBroker.java:73)
	at org.eclipse.e4.ui.internal.workbench.UIEventPublisher.notifyChanged(UIEventPublisher.java:58)
	at org.eclipse.emf.common.notify.impl.BasicNotifierImpl.eNotify(BasicNotifierImpl.java:380)
	at org.eclipse.e4.ui.model.application.ui.impl.ElementContainerImpl.setSelectedElement(ElementContainerImpl.java:171)
	at org.eclipse.e4.ui.internal.workbench.ModelServiceImpl.showElementInWindow(ModelServiceImpl.java:287)
	at org.eclipse.e4.ui.internal.workbench.ModelServiceImpl.bringToTop(ModelServiceImpl.java:255)
	at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.bringToTop(PartServiceImpl.java:264)
	at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.showPart(PartServiceImpl.java:878)
	at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(WorkbenchPage.java:2265)
	at org.eclipse.ui.internal.WorkbenchPage.access$14(WorkbenchPage.java:2227)
	at org.eclipse.ui.internal.WorkbenchPage$5.run(WorkbenchPage.java:2209)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
	at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2205)
	at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2189)
	at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2172)
	at org.eclipse.ui.ide.IDE.openEditorOnFileStore(IDE.java:1155)
	at org.eclipse.ui.internal.views.log.OpenIDELogFileAction.run(OpenIDELogFileAction.java:42)
	at org.eclipse.jface.action.Action.runWithEvent(Action.java:498)
	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$6.handleEvent(ActionContributionItem.java:452)
Comment 1 Remy Suen CLA 2011-01-07 08:50:35 EST
3.x trace as follows:

Thread [main] (Suspended (breakpoint at line 266 in Program))	
	Program.launch(String) line: 266	
	EditorManager$4.run() line: 873	
	BusyIndicator.showWhile(Display, Runnable) line: 70	
	EditorManager.openSystemExternalEditor(IPath) line: 870	
	EditorManager.openEditorFromDescriptor(EditorDescriptor, IEditorInput, IMemento) line: 662	
	EditorManager.openEditor(String, IEditorInput, boolean, IMemento) line: 638	
	WorkbenchPage.busyOpenEditorBatched(IEditorInput, String, boolean, int, IMemento) line: 2860	
	WorkbenchPage.busyOpenEditor(IEditorInput, String, boolean, int, IMemento) line: 2768	
	WorkbenchPage.access$11(WorkbenchPage, IEditorInput, String, boolean, int, IMemento) line: 2760	
	WorkbenchPage$10.run() line: 2711	
	BusyIndicator.showWhile(Display, Runnable) line: 70	
	WorkbenchPage.openEditor(IEditorInput, String, boolean, int, IMemento) line: 2707	
	WorkbenchPage.openEditor(IEditorInput, String, boolean, int) line: 2691	
	WorkbenchPage.openEditor(IEditorInput, String) line: 2674	
	IDE.openEditorOnFileStore(IWorkbenchPage, IFileStore) line: 1155	
	OpenIDELogFileAction.run() line: 42
Comment 2 Remy Suen CLA 2011-01-07 09:04:04 EST
Created attachment 186271 [details]
WorkbenchPage patch v1

The editor code wasn't transforming a FileStoreEditorInput into an IPathEditorInput where possible (via adapters) so it tried to open the editor via the descriptor directly (which was not possible since there was no backing implementation class) instead of launching an external program.
Comment 3 Remy Suen CLA 2011-01-07 09:05:13 EST
(In reply to comment #2)
> Created attachment 186271 [details]
> WorkbenchPage patch v1

Patch released to CVS HEAD.
Comment 4 Remy Suen CLA 2011-01-26 09:36:32 EST
Verified with I20110125-2200 on Windows XP.