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

Bug 466578

Summary: Menu icon missing in Quick outline
Product: [Eclipse Project] JDT Reporter: Noopur Gupta <noopur_gupta>
Component: UIAssignee: Lars Vogel <Lars.Vogel>
Status: VERIFIED FIXED QA Contact:
Severity: major    
Priority: P2 CC: daniel_megert, dirk.fauth, Lars.Vogel, markus.kell.r, noopur_gupta, tmccrary
Version: 4.5Flags: markus.kell.r: review+
Lars.Vogel: review+
Target Milestone: 4.5 RC1   
Hardware: PC   
OS: Windows 7   
See Also: https://git.eclipse.org/r/47331
https://git.eclipse.org/c/platform/eclipse.platform.ui.git/commit/?id=12ddfae18bdbcbc87f496933c22cdb6b6130e089
Whiteboard:
Bug Depends on: 440270    
Bug Blocks:    

Description Noopur Gupta CLA 2015-05-06 08:50:31 EDT
Eclipse 4.5.I20150505-2000

- Press Ctrl+O in a .java file to invoke Quick Outline.
- Quick outline popup is missing the menu icon at the top-right, which is shown as a red placeholder.

Also, the following warnings are logged in Error log view for "images/popup_menu_disabled.png" and "images/popup_menu.png":

null
org.eclipse.jface
Warning
Wed May 06 18:12:25 IST 2015
The image could not be loaded: FileImageDescriptor(location=class org.eclipse.jface.dialogs.PopupDialog, name=images/popup_menu_disabled.png)

org.eclipse.jface.resource.DeviceResourceException: Unable to create resource FileImageDescriptor(location=class org.eclipse.jface.dialogs.PopupDialog, name=images/popup_menu_disabled.png)
	at org.eclipse.jface.resource.ImageDescriptor.createResource(ImageDescriptor.java:166)
	at org.eclipse.jface.resource.DeviceResourceManager.allocate(DeviceResourceManager.java:52)
	at org.eclipse.jface.resource.AbstractResourceManager.create(AbstractResourceManager.java:86)
	at org.eclipse.jface.resource.ResourceManager.createImageWithDefault(ResourceManager.java:192)
	at org.eclipse.jface.resource.ImageRegistry.get(ImageRegistry.java:214)
	at org.eclipse.jface.resource.JFaceResources.getImage(JFaceResources.java:387)
	at org.eclipse.jface.dialogs.PopupDialog.createDialogMenu(PopupDialog.java:935)
	at org.eclipse.jface.dialogs.PopupDialog.createTitleMenuArea(PopupDialog.java:814)
	at org.eclipse.jdt.internal.ui.text.AbstractInformationControl.createTitleMenuArea(AbstractInformationControl.java:805)
	at org.eclipse.jface.dialogs.PopupDialog.createContents(PopupDialog.java:686)
	at org.eclipse.jface.window.Window.create(Window.java:430)
	at org.eclipse.jdt.internal.ui.text.AbstractInformationControl.<init>(AbstractInformationControl.java:192)
	at org.eclipse.jdt.internal.ui.text.JavaOutlineInformationControl.<init>(JavaOutlineInformationControl.java:540)
	at org.eclipse.jdt.ui.text.JavaSourceViewerConfiguration$6.createInformationControl(JavaSourceViewerConfiguration.java:769)
	at org.eclipse.jface.text.AbstractInformationControlManager.getInformationControl(AbstractInformationControlManager.java:819)
	at org.eclipse.jface.text.AbstractInformationControlManager.internalShowInformationControl(AbstractInformationControlManager.java:1168)
	at org.eclipse.jface.text.AbstractInformationControlManager.presentInformation(AbstractInformationControlManager.java:1150)
	at org.eclipse.jface.text.AbstractInformationControlManager.setInformation(AbstractInformationControlManager.java:418)
	at org.eclipse.jface.text.information.InformationPresenter.computeInformation(InformationPresenter.java:355)
	at org.eclipse.jface.text.AbstractInformationControlManager.doShowInformation(AbstractInformationControlManager.java:1131)
	at org.eclipse.jface.text.AbstractInformationControlManager.showInformation(AbstractInformationControlManager.java:1121)
	at org.eclipse.jdt.internal.ui.javaeditor.JavaSourceViewer.doOperation(JavaSourceViewer.java:184)
	at org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor$AdaptedSourceViewer.doOperation(CompilationUnitEditor.java:197)
	at org.eclipse.ui.texteditor.TextOperationAction$1.run(TextOperationAction.java:128)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
	at org.eclipse.ui.texteditor.TextOperationAction.run(TextOperationAction.java:126)
	at org.eclipse.jface.action.Action.runWithEvent(Action.java:473)
	at org.eclipse.jface.commands.ActionHandler.execute(ActionHandler.java:122)
	at org.eclipse.ui.internal.handlers.E4HandlerProxy.execute(E4HandlerProxy.java:90)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:601)
	at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:56)
	at org.eclipse.e4.core.internal.di.InjectorImpl.invokeUsingClass(InjectorImpl.java:252)
	at org.eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.java:234)
	at org.eclipse.e4.core.contexts.ContextInjectionFactory.invoke(ContextInjectionFactory.java:132)
	at org.eclipse.e4.core.commands.internal.HandlerServiceHandler.execute(HandlerServiceHandler.java:152)
	at org.eclipse.core.commands.Command.executeWithChecks(Command.java:493)
	at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:486)
	at org.eclipse.e4.core.commands.internal.HandlerServiceImpl.executeHandler(HandlerServiceImpl.java:210)
	at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.executeCommand(KeyBindingDispatcher.java:286)
	at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.press(KeyBindingDispatcher.java:507)
	at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.processKeyEvent(KeyBindingDispatcher.java:558)
	at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.filterKeySequenceBindings(KeyBindingDispatcher.java:378)
	at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.access$0(KeyBindingDispatcher.java:324)
	at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher$KeyDownFilter.handleEvent(KeyBindingDispatcher.java:86)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
	at org.eclipse.swt.widgets.Display.filterEvent(Display.java:1266)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1060)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1085)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1070)
	at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1112)
	at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1108)
	at org.eclipse.swt.widgets.Widget.wmChar(Widget.java:1529)
	at org.eclipse.swt.widgets.Control.WM_CHAR(Control.java:4773)
	at org.eclipse.swt.widgets.Canvas.WM_CHAR(Canvas.java:343)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4654)
	at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:339)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:5050)
	at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:2549)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3767)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$4.run(PartRenderingEngine.java:1127)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:337)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1018)
	at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:156)
	at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:654)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:337)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:598)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:139)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:601)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:653)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:608)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1499)
Comment 1 Markus Keller CLA 2015-05-06 09:57:12 EDT
Got broken by bug 440270.

Lars, Dirk: Especially in the RC cycle, you really have to double-check every single changed line, even if it looks like a "simple" Find/Replace.
Comment 2 Eclipse Genie CLA 2015-05-06 11:51:43 EDT
New Gerrit change created: https://git.eclipse.org/r/47331
Comment 3 Lars Vogel CLA 2015-05-06 11:53:19 EDT
(In reply to Eclipse Genie from comment #2)
> New Gerrit change created: https://git.eclipse.org/r/47331

This changes the code back to GIF's for the two missing icons. I also notified Tony, if we could provide an update with the two icons.

I suggest to merge this change to fix the Outline view and once Tony provides the two new icons to revert this change together with the new png files.
Comment 4 Markus Keller CLA 2015-05-06 13:34:23 EDT
(In reply to Lars Vogel from comment #3)
+1 for the strategy, -1 for the first Gerrit change, which you again pushed without even trying it out.

Patch set 2 has been tested and works.
Comment 5 Lars Vogel CLA 2015-05-06 13:47:12 EDT
(In reply to Markus Keller from comment #4)
> Patch set 2 has been tested and works.

Thanks. Can you set the Review flag in the bug report so that the temporary solution can be merged?
Comment 6 Markus Keller CLA 2015-05-06 13:58:59 EDT
(In reply to Lars Vogel from comment #5)
> Thanks. Can you set the Review flag in the bug report so that the temporary
> solution can be merged?

I've done that, but actually you should set the review+, because I supplied the last patch.
Comment 8 Markus Keller CLA 2015-05-08 07:34:29 EDT
Verified in I20150507-2000.