Bug 38872

Summary: [JFace] Failure to load the icons - Error message not proper
Product: [Eclipse Project] Platform Reporter: Venkat Amirthalingam <vamirthalingam>
Component: UIAssignee: Platform UI Triaged <platform-ui-triaged>
Status: NEW --- QA Contact:
Severity: enhancement    
Priority: P5 CC: debbie_wilson
Version: 2.1   
Target Milestone: ---   
Hardware: PC   
OS: Windows 2000   
Whiteboard:

Description Venkat Amirthalingam CLA 2003-06-13 04:09:18 EDT
If the icon path specified in the plugin.xml is not correct, and while loading 
the plugin, error message (stacktrace) is logged in the log file.
The shown error message doesn't contain the icon path that got failed. The 
developers has to go through all the icon paths and verify them.
So, the line number of plugin.xml or the icon path should
be present in the stack trace. For the developers, icon path is more important
than stacktrace.

Any clarifications needed, please let me know.

Included is the stack trace of one such failure

===
!SESSION Jun 13, 2003 13:27:26.937 ---------------------------------------------
java.version=1.3.1_06
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=en_US
Command-line arguments: -install file:D:/workspace/MBideTestEnv/eclipse/
!ENTRY org.eclipse.ui 4 4 Jun 13, 2003 13:27:26.937
!MESSAGE Unhandled exception caught in event loop.
!ENTRY org.eclipse.ui 4 0 Jun 13, 2003 13:27:26.937
!MESSAGE java.lang.IllegalArgumentException
!STACK 0
java.lang.IllegalArgumentException
	at sun.net.www.ParseUtil.decode(ParseUtil.java:69)
	at sun.net.www.protocol.file.FileURLConnection.connect
(FileURLConnection.java:57)
	at sun.net.www.protocol.file.FileURLConnection.getInputStream
(FileURLConnection.java:128)
	at org.eclipse.core.internal.boot.PlatformURLConnection.getInputStream
(PlatformURLConnection.java:178)
	at java.net.URL.openStream(URL.java:793)
	at org.eclipse.jface.resource.URLImageDescriptor.getStream
(URLImageDescriptor.java:77)
	at org.eclipse.jface.resource.URLImageDescriptor.getImageData
(URLImageDescriptor.java:48)
	at org.eclipse.jface.resource.ImageDescriptor.createImage
(ImageDescriptor.java:118)
	at org.eclipse.jface.resource.ImageDescriptor.createImage
(ImageDescriptor.java:94)
	at org.eclipse.jface.resource.ImageDescriptor.createImage
(ImageDescriptor.java:83)
	at org.eclipse.jface.action.ActionContributionItem$ImageCache.getImage
(ActionContributionItem.java:117)
	at org.eclipse.jface.action.ActionContributionItem.updateImages
(ActionContributionItem.java:721)
	at org.eclipse.jface.action.ActionContributionItem.update
(ActionContributionItem.java:596)
	at org.eclipse.jface.action.ActionContributionItem.fill
(ActionContributionItem.java:302)
	at org.eclipse.jface.action.SubContributionItem.fill
(SubContributionItem.java:58)
	at org.eclipse.jface.action.MenuManager.update(MenuManager.java:542)
	at org.eclipse.jface.action.MenuManager.update(MenuManager.java:454)
	at org.eclipse.jface.action.MenuManager.fill(MenuManager.java:207)
	at org.eclipse.jface.action.SubContributionItem.fill
(SubContributionItem.java:58)
	at org.eclipse.jface.action.MenuManager.update(MenuManager.java:542)
	at org.eclipse.jface.action.MenuManager.handleAboutToShow
(MenuManager.java:335)
	at org.eclipse.jface.action.MenuManager.access$0(MenuManager.java:331)
	at org.eclipse.jface.action.MenuManager$2.menuShown
(MenuManager.java:343)
	at org.eclipse.swt.widgets.TypedListener.handleEvent
(TypedListener.java:116)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:81)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:840)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:865)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:845)
	at org.eclipse.swt.widgets.Control.WM_INITMENUPOPUP(Control.java:3141)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:2785)
	at org.eclipse.swt.widgets.Decorations.windowProc(Decorations.java:1229)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:2361)
	at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:1298)
	at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:77)
	at org.eclipse.swt.widgets.Shell.callWindowProc(Shell.java:394)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:2839)
	at org.eclipse.swt.widgets.Decorations.windowProc(Decorations.java:1229)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:2361)
	at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:1298)
	at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:77)
	at org.eclipse.swt.widgets.Shell.callWindowProc(Shell.java:394)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:2839)
	at org.eclipse.swt.widgets.Decorations.windowProc(Decorations.java:1229)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:2361)
	at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:1303)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:1543)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1402)
	at org.eclipse.ui.internal.Workbench.run(Workbench.java:1385)
	at org.eclipse.core.internal.boot.InternalBootLoader.run
(InternalBootLoader.java:845)
	at org.eclipse.core.boot.BootLoader.run(BootLoader.java:461)
	at java.lang.reflect.Method.invoke(Native Method)
	at org.eclipse.core.launcher.Main.basicRun(Main.java:291)
	at org.eclipse.core.launcher.Main.run(Main.java:747)
	at org.eclipse.core.launcher.Main.main(Main.java:583)

===
Comment 1 Debbie Wilson CLA 2003-06-16 12:09:24 EDT
This is not an Eclipse problem.  We have no control over how the virtual 
machine decides to build its exceptions.  This failure is coming from the vm.
Comment 2 Venkat Amirthalingam CLA 2003-06-16 22:15:27 EDT
Even if this exception comes from vm, there should be a way to catch/determine 
what went wrong and where.
My suggestion would be, before creating the input stream for the icon path, the 
icon path could be checked for its existence using File Object and isExists() 
method or any other methods. By this way,  the api call to 
org.eclipse.jface.resource.URLImageDescriptor.getStream will always succeed.

The solution is pretty simple. Am i right or am i missing something else?

Any clarifications, let me know.

Comment 3 Nick Edgar CLA 2006-03-15 13:24:46 EST
Reassigning bugs in component areas that are changing ownership.
Comment 4 Susan McCourt CLA 2007-06-29 13:02:00 EDT
This message is part of a mass update on bugs that have been reviewed for several releases, but not fixed.  The bug is legitimate, but not a priority.  Marking P5.  Patches would be entertained.
Comment 5 Susan McCourt CLA 2009-07-09 15:31:07 EDT
As per http://wiki.eclipse.org/Platform_UI/Bug_Triage_Change_2009
Comment 6 Eclipse Webmaster CLA 2019-09-06 16:15:06 EDT
This bug hasn't had any activity in quite some time. Maybe the problem got resolved, was a duplicate of something else, or became less pressing for some reason - or maybe it's still relevant but just hasn't been looked at yet.

If you have further information on the current state of the bug, please add it. The information can be, for example, that the problem still occurs, that you still want the feature, that more information is needed, or that the bug is (for whatever reason) no longer relevant.