Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 123131

Summary: [Product] [Editors] Externalized branding images paths are not supported
Product: [Eclipse Project] PDE Reporter: Charles Tuckey <charles>
Component: UIAssignee: PDE-UI-Inbox <pde-ui-inbox>
Status: CLOSED WONTFIX QA Contact:
Severity: normal    
Priority: P3 CC: contact, curtis.windatt.public, darin.eclipse, gunnar
Version: 3.2   
Target Milestone: ---   
Hardware: PC   
OS: Linux-GTK   
Whiteboard: stalebug

Description Charles Tuckey CLA 2006-01-09 12:49:55 EST
Under certain conditions the Product Configuration Editor does not respond to the image path entered as Windows Images on the Branding page. It acts as if there were no Windows Images specified and removes any existing windowImages elements in the plugin.xml file. This only seems to affect image paths that start with the '%' character. Here are steps to reproduce this problem.

1) Create a Plugin Project as an RCP using the RCP Mail Template.
2) Create a new Product Configuration file (File->New...->Other->ProductConfiguration).
  - initially there is a windowImages element in the .product file with a i16 attriute. Things are fine.
3) Remove this image via the Branding page. Now there is a windowImages element present in the .product file with no attributes.
4) Synchronize from Overview page. windowImages element disappears from plugin.xml file - as it should.
5) Enter %ICON for i16 image in Branding page. Note that the Product Editor ignores this entry. The Save button does not become enabled. Forcing a Save does not result in %ICON being saved as an attribute of windowImages.
6) Synchronize again. Still nothing in plugin.xml.
7) Add the image back via the Extensions editor in the plugin xml editor.
8) Synchronize again. windowImage attribute disappears from plugin.xml.
Comment 1 Benjamin Cabé CLA 2009-01-11 18:02:53 EST
The following error occurs when a path starting with a '%' is entered in the "16x16 image", for example

java.lang.IllegalArgumentException
	at sun.net.www.ParseUtil.decode(Unknown Source)
	at sun.net.www.protocol.file.Handler.openConnection(Unknown Source)
	at sun.net.www.protocol.file.Handler.openConnection(Unknown Source)
	at java.net.URL.openConnection(Unknown Source)
	at java.net.URL.openStream(Unknown Source)
	at org.eclipse.pde.internal.ui.editor.EditorUtilities.getImageData(EditorUtilities.java:64)
	at org.eclipse.pde.internal.ui.editor.EditorUtilities.imageEntryInternalValidate(EditorUtilities.java:88)
	at org.eclipse.pde.internal.ui.editor.EditorUtilities.imageEntryHasExactSize(EditorUtilities.java:133)
	at org.eclipse.pde.internal.ui.editor.product.WindowImagesSection.validateWinImageEntry(WindowImagesSection.java:111)
	at org.eclipse.pde.internal.ui.editor.product.WindowImagesSection.access$0(WindowImagesSection.java:110)
	at org.eclipse.pde.internal.ui.editor.product.WindowImagesSection$1.validateControl(WindowImagesSection.java:74)
	at org.eclipse.pde.internal.ui.editor.validation.AbstractControlValidator.validate(AbstractControlValidator.java:106)
	at org.eclipse.pde.internal.ui.editor.validation.TextValidator.handleModifyTextEvent(TextValidator.java:112)
	at org.eclipse.pde.internal.ui.editor.validation.TextValidator$1.modifyText(TextValidator.java:94)
	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:167)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1003)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1027)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1008)
	at org.eclipse.swt.widgets.Text.wmCommandChild(Text.java:2435)
	at org.eclipse.swt.widgets.Control.WM_COMMAND(Control.java:4048)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:3915)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:4584)
	at org.eclipse.swt.internal.win32.OS.CallWindowProcW(Native Method)
	at org.eclipse.swt.internal.win32.OS.CallWindowProc(OS.java:2295)
	at org.eclipse.swt.widgets.Text.callWindowProc(Text.java:187)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4002)
	at org.eclipse.swt.widgets.Text.windowProc(Text.java:2079)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:4584)
	at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:2392)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3468)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2384)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2348)
	at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2200)
	at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:495)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:333)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:490)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:113)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:193)
	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:366)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:177)
	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:550)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:505)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1237)
Comment 2 Benjamin Cabé CLA 2009-01-11 18:05:56 EST
In 3.5M4, if the editor is saved with a "%....." image path and closed while the "Branding" tab is active, it can't be opened unless the product configuration file is "corrected" by hand :(


eclipse.buildId=I20081211-1908
java.version=1.6.0_11
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=fr_FR
Command-line arguments:  -os win32 -ws win32 -arch x86


Error
Mon Jan 12 00:02:29 CET 2009
Unable to create editor ID org.eclipse.pde.ui.productEditor: An unexpected exception was thrown.

java.lang.IllegalArgumentException
	at sun.net.www.ParseUtil.decode(Unknown Source)
	at sun.net.www.protocol.file.Handler.openConnection(Unknown Source)
	at sun.net.www.protocol.file.Handler.openConnection(Unknown Source)
	at java.net.URL.openConnection(Unknown Source)
	at java.net.URL.openStream(Unknown Source)
	at org.eclipse.pde.internal.ui.editor.EditorUtilities.getImageData(EditorUtilities.java:64)
	at org.eclipse.pde.internal.ui.editor.EditorUtilities.imageEntryInternalValidate(EditorUtilities.java:88)
	at org.eclipse.pde.internal.ui.editor.EditorUtilities.imageEntryHasExactSize(EditorUtilities.java:133)
	at org.eclipse.pde.internal.ui.editor.product.WindowImagesSection.validateWinImageEntry(WindowImagesSection.java:111)
	at org.eclipse.pde.internal.ui.editor.product.WindowImagesSection.access$0(WindowImagesSection.java:110)
	at org.eclipse.pde.internal.ui.editor.product.WindowImagesSection$1.validateControl(WindowImagesSection.java:74)
	at org.eclipse.pde.internal.ui.editor.validation.AbstractControlValidator.validate(AbstractControlValidator.java:106)
	at org.eclipse.pde.internal.ui.editor.validation.TextValidator.handleModifyTextEvent(TextValidator.java:112)
	at org.eclipse.pde.internal.ui.editor.validation.TextValidator$1.modifyText(TextValidator.java:94)
	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:167)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1003)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1027)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1008)
	at org.eclipse.swt.widgets.Text.wmCommandChild(Text.java:2435)
	at org.eclipse.swt.widgets.Control.WM_COMMAND(Control.java:4048)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:3915)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:4584)
	at org.eclipse.swt.internal.win32.OS.CallWindowProcW(Native Method)
	at org.eclipse.swt.internal.win32.OS.CallWindowProc(OS.java:2295)
	at org.eclipse.swt.widgets.Text.callWindowProc(Text.java:187)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4002)
	at org.eclipse.swt.widgets.Text.windowProc(Text.java:2079)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:4584)
	at org.eclipse.swt.internal.win32.OS.SetWindowTextW(Native Method)
	at org.eclipse.swt.internal.win32.OS.SetWindowText(OS.java:3190)
	at org.eclipse.swt.widgets.Text.setText(Text.java:1870)
	at org.eclipse.pde.internal.ui.parts.FormEntry.setValue(FormEntry.java:300)
	at org.eclipse.pde.internal.ui.parts.FormEntry.setValue(FormEntry.java:313)
	at org.eclipse.pde.internal.ui.editor.product.WindowImagesSection.refresh(WindowImagesSection.java:103)
	at org.eclipse.ui.forms.ManagedForm.doRefresh(ManagedForm.java:206)
	at org.eclipse.ui.forms.ManagedForm.refresh(ManagedForm.java:191)
	at org.eclipse.ui.forms.editor.FormPage.setActive(FormPage.java:124)
	at org.eclipse.pde.internal.ui.editor.PDEFormPage.setActive(PDEFormPage.java:83)
	at org.eclipse.ui.forms.editor.FormEditor.pageChange(FormEditor.java:480)
	at org.eclipse.pde.internal.ui.editor.PDEFormEditor.pageChange(PDEFormEditor.java:262)
	at org.eclipse.ui.part.MultiPageEditorPart.setActivePage(MultiPageEditorPart.java:1001)
	at org.eclipse.ui.forms.editor.FormEditor.setActivePage(FormEditor.java:597)
	at org.eclipse.ui.forms.editor.FormEditor.setActivePage(FormEditor.java:503)
	at org.eclipse.pde.internal.ui.editor.PDEFormEditor.setActivePage(PDEFormEditor.java:777)
	at org.eclipse.pde.internal.ui.editor.PDEFormEditor.createPages(PDEFormEditor.java:253)
	at org.eclipse.ui.part.MultiPageEditorPart.createPartControl(MultiPageEditorPart.java:329)
	at org.eclipse.ui.internal.EditorReference.createPartHelper(EditorReference.java:678)
	at org.eclipse.ui.internal.EditorReference.createPart(EditorReference.java:444)
	at org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:595)
	at org.eclipse.ui.internal.EditorReference.getEditor(EditorReference.java:268)
	at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched(WorkbenchPage.java:2821)
	at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(WorkbenchPage.java:2730)
	at org.eclipse.ui.internal.WorkbenchPage.access$11(WorkbenchPage.java:2722)
	at org.eclipse.ui.internal.WorkbenchPage$10.run(WorkbenchPage.java:2674)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
	at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2669)
	at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2653)
	at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2644)
	at org.eclipse.ui.ide.IDE.openEditor(IDE.java:646)
	at org.eclipse.ui.ide.IDE.openEditor(IDE.java:605)
	at org.eclipse.jdt.internal.ui.javaeditor.EditorUtility.openInEditor(EditorUtility.java:318)
	at org.eclipse.jdt.internal.ui.javaeditor.EditorUtility.openInEditor(EditorUtility.java:160)
	at org.eclipse.jdt.ui.actions.OpenAction.run(OpenAction.java:229)
	at org.eclipse.jdt.ui.actions.OpenAction.run(OpenAction.java:208)
	at org.eclipse.jdt.ui.actions.SelectionDispatchAction.dispatchRun(SelectionDispatchAction.java:274)
	at org.eclipse.jdt.ui.actions.SelectionDispatchAction.run(SelectionDispatchAction.java:250)
	at org.eclipse.jdt.internal.ui.packageview.PackageExplorerActionGroup.handleOpen(PackageExplorerActionGroup.java:365)
	at org.eclipse.jdt.internal.ui.packageview.PackageExplorerPart$4.open(PackageExplorerPart.java:526)
	at org.eclipse.ui.OpenAndLinkWithEditorHelper$InternalListener.open(OpenAndLinkWithEditorHelper.java:48)
	at org.eclipse.jface.viewers.StructuredViewer$2.run(StructuredViewer.java:820)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
	at org.eclipse.core.runtime.Platform.run(Platform.java:874)
	at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:48)
	at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:175)
	at org.eclipse.jface.viewers.StructuredViewer.fireOpen(StructuredViewer.java:818)
	at org.eclipse.jface.viewers.StructuredViewer.handleOpen(StructuredViewer.java:1079)
	at org.eclipse.jface.viewers.StructuredViewer$6.handleOpen(StructuredViewer.java:1183)
	at org.eclipse.jface.util.OpenStrategy.fireOpenEvent(OpenStrategy.java:264)
	at org.eclipse.jface.util.OpenStrategy.access$2(OpenStrategy.java:258)
	at org.eclipse.jface.util.OpenStrategy$1.handleEvent(OpenStrategy.java:298)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1003)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3875)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3470)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2384)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2348)
	at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2200)
	at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:495)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:333)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:490)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:113)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:193)
	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:366)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:177)
	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:550)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:505)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1237)


Comment 3 Curtis Windatt CLA 2009-05-06 11:27:32 EDT
No one is currently working on this bug, deferring.
Comment 4 Eclipse Webmaster CLA 2019-09-06 16:16:31 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.
Comment 5 Julian Honnen CLA 2019-09-09 02:27:10 EDT
Please remove the stalebug flag, if this issue is still relevant and can be reproduced on the latest release.