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();
}
}