Bug 509708 - Don't try to create an image from a null descriptor.

Elements in the outline can be "virtual" without real direction of the
change (e.g. "Compilation Unit" root node). Such elements are created
from RangeDifferences with "NOCHANGE" kind (so the
DocumentMerger.Diff.fDirection is zero), and therefore they do not have
an image descriptor configured in CompareConfiguration.fgImages array.

Change-Id: I82645b097fe49a3d61e2e7934a0190a718a9ec35
Signed-off-by: Andrey Loskutov <loskutov@gmx.de>
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/CompareConfiguration.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/CompareConfiguration.java
index 0214515..8337ad8 100644
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/CompareConfiguration.java
+++ b/bundles/org.eclipse.compare/compare/org/eclipse/compare/CompareConfiguration.java
@@ -325,14 +325,20 @@
 	 * disposed when the <code>dispose</code> method is called.
 	 *
 	 * @param kind the kind of change as defined in <code>Differencer</code>.
-	 * @return an modification of the base image reflecting the kind of change.
+	 * @return an modification of the base image reflecting the kind of change
+	 *         or {@code null} if there is no image descriptor registered for
+	 *         given id.
 	 * @see org.eclipse.compare.structuremergeviewer.Differencer
 	 * @since 2.0
 	 */
 	public Image getImage(int kind) {
-		if (fDisposed)
+		if (fDisposed) {
 			return null;
+		}
 		ImageDescriptor id= getImageDescriptor(kind);
+		if (id == null) {
+			return null;
+		}
 		ResourceManager rm = getResourceManager();
 		return rm.createImage(id);
 	}