Some implementations of Resource.Diagnostic may return null locations

This happens with Sirius' ResourceVersionMismatchDiagnostic at the
time of commit.

Bug: 551217
Change-Id: I4c86fc83c7e52cc9d1007269cc7d909fa45e6e15
diff --git a/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/logical/SynchronizationModel.java b/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/logical/SynchronizationModel.java
index 457e8b3..93f644f 100644
--- a/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/logical/SynchronizationModel.java
+++ b/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/logical/SynchronizationModel.java
@@ -334,7 +334,8 @@
 						if (containsResourceWithPath(resourceIPath)) {
 							d.merge(child);
 						}
-					} else if (potentialSource instanceof Resource.Diagnostic) {
+					} else if (potentialSource instanceof Resource.Diagnostic
+							&& ((Resource.Diagnostic)potentialSource).getLocation() != null) {
 						Resource.Diagnostic resourceDiagnostic = (Resource.Diagnostic)potentialSource;
 						String location = resourceDiagnostic.getLocation();
 						URI locationUri = URI.createURI(location, false);