Bug 180701 [JFace] API - Popup dialog is creating image descriptors every time it is opened
We are not caching the imageDescriptors from PopupDialog but are recreating them all of the time. This is likely not a serious issue but it will generate garbage. Also the images are not looked up using bundles so they cannot be overridden in other Locales. As they are currently symmetric this is not an issue but they should be looked up in the same way we do it in JFaceResources when this fixed.
bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/PopupDialog.java
* 
	 * @see org.eclipse.jface.window.Window#configureShell(Shell)
	 */
	protected void configureShell(Shell shell) {
		Display display = shell.getDisplay();
		shell.setBackground(display.getSystemColor(SWT.COLOR_BLACK));
		int border = ((getShellStyle() & SWT.NO_TRIM) == 0) ? 0
				: BORDER_THICKNESS;
		GridLayoutFactory.fillDefaults().margins(border, border).spacing(5,5).applyTo(shell);
		shell.addListener(SWT.Deactivate, new Listener() {
			public void handleEvent(Event event) {
				/*
				 * Close if we are deactivating and have no child shells. If we
				 * have child shells, we are deactivating due to their opening.
				 * On X, we receive this when a menu child (such as the system
				 * menu) of the shell opens, but I have not found a way to
				 * distinguish that case here. Hence bug #113577 still exists.
				 */
				if (listenToDeactivate && event.widget == getShell()
						&& getShell().getShells().length == 0) {
					close();
				} else {
					/* We typically ignore deactivates to work around platform-specific
					 * event ordering.  Now that we've ignored whatever we were supposed to,
					 * start listening to deactivates.  Example issues can be found in
					 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=123392
					 */
					listenToDeactivate = true;
				}
			}