RESOLVED - bug 510884:
org.eclipse.sphinx.emf.internal.metamodel.services.MetaModelServiceDescriptor.newInstance()
has wrong code
https://bugs.eclipse.org/bugs/show_bug.cgi?id=510884
diff --git a/plugins/org.eclipse.sphinx.emf/src/org/eclipse/sphinx/emf/internal/metamodel/services/MetaModelServiceDescriptor.java b/plugins/org.eclipse.sphinx.emf/src/org/eclipse/sphinx/emf/internal/metamodel/services/MetaModelServiceDescriptor.java
index 6cd6384..e21225e 100644
--- a/plugins/org.eclipse.sphinx.emf/src/org/eclipse/sphinx/emf/internal/metamodel/services/MetaModelServiceDescriptor.java
+++ b/plugins/org.eclipse.sphinx.emf/src/org/eclipse/sphinx/emf/internal/metamodel/services/MetaModelServiceDescriptor.java
@@ -12,6 +12,7 @@
  *     itemis - Moved from Artop to Sphinx, adapted method and variable naming to Sphinx conventions
  *     itemis - [458921] Newly introduced registries for metamodel serives, check validators and workflow contributors are not standalone-safe
  *     itemis - [501899] Use base index instead of IncQuery patterns
+ *     itemis - [510884] org.eclipse.sphinx.emf.internal.metamodel.services.MetaModelServiceDescriptor.newInstance() has wrong code
  *
  * </copyright>
  */
@@ -122,13 +123,17 @@
 	 */
 	@Override
 	public IMetaModelService newInstance() throws Exception {
-		Class<IMetaModelService> type = getType();
 
-		Constructor<IMetaModelService> constructor = type.getConstructor(Collection.class);
-		if (constructor != null) {
+		Class<IMetaModelService> type = getType();
+		try {
+			// Try to create metamodel service and pass along affected metamodel descriptors
+			Constructor<IMetaModelService> constructor = type.getConstructor(Collection.class);
 			return constructor.newInstance(getMetaModelDescriptors());
-		} else {
-			return type.newInstance();
+		} catch (NoSuchMethodException ex) {
+			// Ignore exception, it just means that we don't have any constructor taking a Collection as argument
 		}
+
+		// Try to create metamodel service without passing along affected metamodel descriptors
+		return type.newInstance();
 	}
 }