Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 407350 - Opening a file that has been deleted in the Remote Type Hierarchy view generates an error
Summary: Opening a file that has been deleted in the Remote Type Hierarchy view genera...
Status: RESOLVED FIXED
Alias: None
Product: PTP
Classification: Tools
Component: RDT (show other bugs)
Version: 6.0   Edit
Hardware: PC Windows 7
: P3 normal (vote)
Target Milestone: 6.0.6   Edit
Assignee: Chris Recoskie CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-05-06 20:53 EDT by Violaine Batthish CLA
Modified: 2013-05-13 13:14 EDT (History)
2 users (show)

See Also:


Attachments
Patch to check for remote file existence (62.48 KB, text/plain)
2013-05-06 20:53 EDT, Violaine Batthish CLA
recoskie: iplog+
Details
Remote Call Hierarchy patch to check file existence (3.34 KB, patch)
2013-05-06 21:18 EDT, Violaine Batthish CLA
recoskie: iplog+
Details | Diff
patch to ensure that open works correctly in TH & CH views (1.70 KB, patch)
2013-05-13 11:15 EDT, Violaine Batthish CLA
recoskie: iplog+
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Violaine Batthish CLA 2013-05-06 20:53:18 EDT
Created attachment 230556 [details]
Patch to check for remote file existence

To reproduce:
1. Press F4 on a class such that the Remote Type Hierarchy has data in it.
2. Delete the header file that contains the definition of the class
3. Double-click on the class.  The following exception is produced:
java.lang.NullPointerException
	at org.eclipse.cdt.internal.ui.editor.CEditor.updateScalabilityMode(Unknown Source)
	at org.eclipse.cdt.internal.ui.editor.CEditor.doSetInput(Unknown Source)
	at org.eclipse.ptp.internal.rdt.editor.RemoteCEditor.doSetInput(Unknown Source)
	at org.eclipse.ui.texteditor.AbstractTextEditor$19.run(Unknown Source)
	at org.eclipse.jface.operation.ModalContext.runInCurrentThread(Unknown Source)
	at org.eclipse.jface.operation.ModalContext.run(Unknown Source)
	at org.eclipse.ui.internal.WorkbenchWindow$13.run(Unknown Source)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(Unknown Source)
	at org.eclipse.ui.internal.WorkbenchWindow.run(Unknown Source)
	at org.eclipse.ui.texteditor.AbstractTextEditor.internalInit(Unknown Source)
	at org.eclipse.ui.texteditor.AbstractTextEditor.init(Unknown Source)
	at org.eclipse.ui.internal.EditorReference.initialize(Unknown Source)
	at org.eclipse.ui.internal.e4.compatibility.CompatibilityPart.create(Unknown Source)
	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(Unknown Source)
	at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(Unknown Source)
	at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(Unknown Source)
	at org.eclipse.e4.core.internal.di.InjectorImpl.inject(Unknown Source)
	at org.eclipse.e4.core.internal.di.InjectorImpl.internalMake(Unknown Source)
	at org.eclipse.e4.core.internal.di.InjectorImpl.make(Unknown Source)
	at org.eclipse.e4.core.contexts.ContextInjectionFactory.make(Unknown Source)
	at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.createFromBundle(Unknown Source)
	at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.doCreate(Unknown Source)
	at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.create(Unknown Source)
	at org.eclipse.e4.ui.workbench.renderers.swt.ContributedPartRenderer.createWidget(Unknown Source)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createWidget(Unknown Source)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(Unknown Source)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(Unknown Source)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$2(Unknown Source)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$7.run(Unknown Source)
	at org.eclipse.core.runtime.SafeRunner.run(Unknown Source)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(Unknown Source)
	at org.eclipse.e4.ui.internal.workbench.PartServiceImpl$1.handleEvent(Unknown Source)
	at org.eclipse.e4.ui.services.internal.events.UIEventHandler$1.run(Unknown Source)
	at org.eclipse.swt.widgets.Synchronizer.syncExec(Unknown Source)
	at org.eclipse.ui.internal.UISynchronizer.syncExec(Unknown Source)
	at org.eclipse.swt.widgets.Display.syncExec(Unknown Source)
	at org.eclipse.e4.ui.internal.workbench.swt.E4Application$1.syncExec(Unknown Source)
	at org.eclipse.e4.ui.services.internal.events.UIEventHandler.handleEvent(Unknown Source)
	at org.eclipse.equinox.internal.event.EventHandlerWrapper.handleEvent(Unknown Source)
	at org.eclipse.equinox.internal.event.EventHandlerTracker.dispatchEvent(Unknown Source)
	at org.eclipse.equinox.internal.event.EventHandlerTracker.dispatchEvent(Unknown Source)
	at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(Unknown Source)
	at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(Unknown Source)
	at org.eclipse.equinox.internal.event.EventAdminImpl.dispatchEvent(Unknown Source)
	at org.eclipse.equinox.internal.event.EventAdminImpl.sendEvent(Unknown Source)
	at org.eclipse.equinox.internal.event.EventComponent.sendEvent(Unknown Source)
	at org.eclipse.e4.ui.services.internal.events.EventBroker.send(Unknown Source)
	at org.eclipse.e4.ui.internal.workbench.UIEventPublisher.notifyChanged(Unknown Source)
	at org.eclipse.emf.common.notify.impl.BasicNotifierImpl.eNotify(Unknown Source)
	at org.eclipse.e4.ui.model.application.ui.impl.ElementContainerImpl.setSelectedElement(Unknown Source)
	at org.eclipse.e4.ui.internal.workbench.ModelServiceImpl.showElementInWindow(Unknown Source)
	at org.eclipse.e4.ui.internal.workbench.ModelServiceImpl.bringToTop(Unknown Source)
	at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.delegateBringToTop(Unknown Source)
	at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.bringToTop(Unknown Source)
	at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.showPart(Unknown Source)
	at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(Unknown Source)
	at org.eclipse.ui.internal.WorkbenchPage.access$22(Unknown Source)
	at org.eclipse.ui.internal.WorkbenchPage$8.run(Unknown Source)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(Unknown Source)
	at org.eclipse.ui.internal.WorkbenchPage.openEditor(Unknown Source)
	at org.eclipse.ui.internal.WorkbenchPage.openEditor(Unknown Source)
	at org.eclipse.ui.internal.WorkbenchPage.openEditor(Unknown Source)
	at org.eclipse.cdt.internal.ui.util.EditorUtility.openInEditor(Unknown Source)
	at org.eclipse.cdt.internal.ui.util.EditorUtility.openInEditor(Unknown Source)
	at org.eclipse.ptp.internal.rdt.ui.typehierarchy.RemoteTHViewPart.openElement(Unknown Source)
	at org.eclipse.ptp.internal.rdt.ui.typehierarchy.RemoteTHViewPart.onOpenElement(Unknown Source)
	at org.eclipse.ptp.internal.rdt.ui.typehierarchy.RemoteTHViewPart$9.open(Unknown Source)
	at org.eclipse.jface.viewers.StructuredViewer$2.run(Unknown Source)
	at org.eclipse.core.runtime.SafeRunner.run(Unknown Source)
	at org.eclipse.ui.internal.JFaceUtil$1.run(Unknown Source)
	at org.eclipse.jface.util.SafeRunnable.run(Unknown Source)
	at org.eclipse.jface.viewers.StructuredViewer.fireOpen(Unknown Source)
	at org.eclipse.jface.viewers.StructuredViewer.handleOpen(Unknown Source)
	at org.eclipse.jface.viewers.StructuredViewer$6.handleOpen(Unknown Source)
	at org.eclipse.jface.util.OpenStrategy.fireOpenEvent(Unknown Source)
	at org.eclipse.jface.util.OpenStrategy.access$2(Unknown Source)
	at org.eclipse.jface.util.OpenStrategy$1.handleEvent(Unknown Source)
	at org.eclipse.swt.widgets.EventTable.sendEvent(Unknown Source)
	at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Unknown Source)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Unknown Source)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(Unknown Source)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Unknown Source)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(Unknown Source)
	at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(Unknown Source)
	at org.eclipse.ui.internal.Workbench$5.run(Unknown Source)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Unknown Source)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Unknown Source)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(Unknown Source)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(Unknown Source)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(Unknown Source)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(Unknown Source)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(Unknown Source)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(Unknown Source)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(Unknown Source)
	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.equinox.launcher.Main.invokeFramework(Unknown Source)
	at org.eclipse.equinox.launcher.Main.basicRun(Unknown Source)
	at org.eclipse.equinox.launcher.Main.run(Unknown Source)
	at org.eclipse.equinox.launcher.Main.main(Unknown Source)


A patch for a fix is attached.
Comment 1 Violaine Batthish CLA 2013-05-06 21:18:58 EDT
Created attachment 230557 [details]
Remote Call Hierarchy patch to check file existence

The same problem also occurs for Remote Call Hierarchy view
Comment 2 Chris Recoskie CLA 2013-05-07 12:06:56 EDT
Patches applied to ptp_6_0 and master.  Thanks V.
Comment 3 Violaine Batthish CLA 2013-05-13 11:15:03 EDT
Created attachment 230868 [details]
patch to ensure that open works correctly in TH & CH views
Comment 4 Violaine Batthish CLA 2013-05-13 11:16:02 EDT
Patch from comment 3 is for a regression from previous patch where open is broken when it should work.
Comment 5 Violaine Batthish CLA 2013-05-13 11:16:56 EDT
Reopening as previous comment saved too early
Comment 6 Chris Recoskie CLA 2013-05-13 13:14:38 EDT
Latest patch applied to ptp_6_0 and master.