Bug 198305 - Manifest editor blows up upon expanding a node
Summary: Manifest editor blows up upon expanding a node
Status: RESOLVED FIXED
Alias: None
Product: PDE
Classification: Eclipse Project
Component: UI (show other bugs)
Version: 3.3   Edit
Hardware: PC Windows XP
: P3 normal (vote)
Target Milestone: 3.4 M1   Edit
Assignee: Adam Archer CLA
QA Contact:
URL:
Whiteboard:
Keywords: contributed
Depends on:
Blocks:
 
Reported: 2007-07-30 14:26 EDT by Wassim Melhem CLA
Modified: 2007-08-07 15:43 EDT (History)
1 user (show)

See Also:


Attachments
patch (3.44 KB, patch)
2007-07-30 18:10 EDT, Adam Archer CLA
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Wassim Melhem CLA 2007-07-30 14:26:27 EDT
Build id: I20070724-0800

1. Open the plugin.xml for org.eclipse.pde.core
2. Switch to the extensions page
3. Expand the org.eclipse.ant.core.antTasks extension.  Boom!

Error
Mon Jul 30 14:24:07 EDT 2007
Problems occurred when invoking code from plug-in: "org.eclipse.jface".

org.eclipse.swt.SWTException: Unsupported or unrecognized format
	at org.eclipse.swt.SWT.error(SWT.java:3563)
	at org.eclipse.swt.SWT.error(SWT.java:3481)
	at org.eclipse.swt.SWT.error(SWT.java:3452)
	at org.eclipse.swt.internal.image.FileFormat.load(FileFormat.java:82)
	at org.eclipse.swt.graphics.ImageLoader.load(ImageLoader.java:127)
	at org.eclipse.swt.graphics.ImageDataLoader.load(ImageDataLoader.java:22)
	at org.eclipse.swt.graphics.ImageData.<init>(ImageData.java:328)
	at org.eclipse.pde.internal.ui.util.SharedLabelProvider.getImageFromPlugin(SharedLabelProvider.java:231)
	at org.eclipse.pde.internal.ui.editor.plugin.ExtensionsSection.getImageFromPlugin(ExtensionsSection.java:728)
	at org.eclipse.pde.internal.ui.editor.plugin.ExtensionsSection.getCustomImage(ExtensionsSection.java:711)
	at org.eclipse.pde.internal.ui.editor.plugin.ExtensionsSection.resolveObjectImage(ExtensionsSection.java:681)
	at org.eclipse.pde.internal.ui.editor.plugin.ExtensionsSection.access$1(ExtensionsSection.java:674)
	at org.eclipse.pde.internal.ui.editor.plugin.ExtensionsSection$ExtensionLabelProvider.getImage(ExtensionsSection.java:141)
	at org.eclipse.jface.viewers.WrappedViewerLabelProvider.getImage(WrappedViewerLabelProvider.java:117)
	at org.eclipse.jface.viewers.WrappedViewerLabelProvider.update(WrappedViewerLabelProvider.java:165)
	at org.eclipse.jface.viewers.ViewerColumn.refresh(ViewerColumn.java:135)
	at org.eclipse.jface.viewers.AbstractTreeViewer.doUpdateItem(AbstractTreeViewer.java:911)
	at org.eclipse.jface.viewers.AbstractTreeViewer$UpdateItemSafeRunnable.run(AbstractTreeViewer.java:97)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
	at org.eclipse.core.runtime.Platform.run(Platform.java:857)
	at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:46)
	at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:193)
	at org.eclipse.jface.viewers.AbstractTreeViewer.doUpdateItem(AbstractTreeViewer.java:988)
	at org.eclipse.jface.viewers.StructuredViewer$UpdateItemSafeRunnable.run(StructuredViewer.java:466)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
	at org.eclipse.core.runtime.Platform.run(Platform.java:857)
	at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:46)
	at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:193)
	at org.eclipse.jface.viewers.StructuredViewer.updateItem(StructuredViewer.java:2024)
	at org.eclipse.jface.viewers.AbstractTreeViewer.createTreeItem(AbstractTreeViewer.java:806)
	at org.eclipse.jface.viewers.AbstractTreeViewer$1.run(AbstractTreeViewer.java:781)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:67)
	at org.eclipse.jface.viewers.AbstractTreeViewer.createChildren(AbstractTreeViewer.java:755)
	at org.eclipse.jface.viewers.TreeViewer.createChildren(TreeViewer.java:615)
	at org.eclipse.jface.viewers.AbstractTreeViewer.handleTreeExpand(AbstractTreeViewer.java:1418)
	at org.eclipse.jface.viewers.TreeViewer.handleTreeExpand(TreeViewer.java:906)
	at org.eclipse.jface.viewers.AbstractTreeViewer$4.treeExpanded(AbstractTreeViewer.java:1429)
	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:125)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:938)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:962)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:947)
	at org.eclipse.swt.widgets.Tree.wmNotifyChild(Tree.java:7041)
	at org.eclipse.swt.widgets.Control.wmNotify(Control.java:4579)
	at org.eclipse.swt.widgets.Composite.wmNotify(Composite.java:1585)
	at org.eclipse.swt.widgets.Control.WM_NOTIFY(Control.java:4216)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:3724)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:4357)
	at org.eclipse.swt.internal.win32.OS.CallWindowProcW(Native Method)
	at org.eclipse.swt.internal.win32.OS.CallWindowProc(OS.java:2195)
	at org.eclipse.swt.widgets.Tree.callWindowProc(Tree.java:1541)
	at org.eclipse.swt.widgets.Tree.WM_LBUTTONDOWN(Tree.java:5787)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:3705)
	at org.eclipse.swt.widgets.Tree.windowProc(Tree.java:5365)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:4370)
	at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:2281)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3297)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2389)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2353)
	at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2219)
	at org.eclipse.ui.internal.Workbench$4.run(Workbench.java:466)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:289)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:461)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:106)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:169)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:106)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:76)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:363)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:176)
	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(Main.java:508)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:447)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1173)
Comment 1 Adam Archer CLA 2007-07-30 18:10:09 EDT
Created attachment 74982 [details]
patch

With this patch, the editor will first confirm that the path it gets from the icon property is a valid image type before using it. Otherwise it will return null (meaning use the default icon).

Also improved the logic in the getIconProperty and getLabelProperty methods.
Comment 2 Wassim Melhem CLA 2007-07-30 18:32:12 EDT
Patch released.  Thanks Adam.