Bug 562389 - initialize imageDescriptor correctly

Fixes NPE on dispose when no icon is configured.


Change-Id: I996065da924631cd9d2dad2065b7b41e96fff325
Signed-off-by: visjho <Julian.Honnen@vector.com>
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/part/IntroPart.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/part/IntroPart.java
index e8ca302..3496f2b 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/part/IntroPart.java
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/part/IntroPart.java
@@ -66,7 +66,7 @@
 
 	private IConfigurationElement configElement;
 
-	private Optional<ImageDescriptor> imageDescriptor;
+	private Optional<ImageDescriptor> imageDescriptor = Optional.empty();
 
 	private IIntroSite partSite;
 
@@ -248,11 +248,11 @@
 		titleLabel = cfig.getAttribute(IWorkbenchRegistryConstants.ATT_LABEL);
 		// Icon.
 		String strIcon = cfig.getAttribute(IWorkbenchRegistryConstants.ATT_ICON);
-		if (strIcon == null) {
-			return;
+		if (strIcon != null) {
+			imageDescriptor = ResourceLocator.imageDescriptorFromBundle(configElement.getContributor().getName(),
+					strIcon);
+			imageDescriptor.ifPresent(d -> titleImage = JFaceResources.getResources().createImageWithDefault(d));
 		}
-		imageDescriptor = ResourceLocator.imageDescriptorFromBundle(configElement.getContributor().getName(), strIcon);
-		imageDescriptor.ifPresent(d -> titleImage = JFaceResources.getResources().createImageWithDefault(d));
 	}
 
 	/**