[573449] Make org.eclipse.emf.codegen.ecore dependency optional
diff --git a/plugins/org.eclipse.m2m.qvt.oml/META-INF/MANIFEST.MF b/plugins/org.eclipse.m2m.qvt.oml/META-INF/MANIFEST.MF
index 47b5249..27fe900 100644
--- a/plugins/org.eclipse.m2m.qvt.oml/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.m2m.qvt.oml/META-INF/MANIFEST.MF
@@ -107,7 +107,7 @@
  org.eclipse.ocl.ecore;bundle-version="[3.1.0,4.0.0)";visibility:=reexport,
  org.eclipse.m2m.qvt.oml.ecore.imperativeocl;bundle-version="[3.0.0,4.0.0)";visibility:=reexport,
  org.eclipse.ocl;visibility:=reexport,
- org.eclipse.emf.codegen.ecore;bundle-version="[2.8.0,3.0.0)"
+ org.eclipse.emf.codegen.ecore;bundle-version="[2.8.0,3.0.0)";resolution:=optional
 Eclipse-BuddyPolicy: registered
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
diff --git a/plugins/org.eclipse.m2m.qvt.oml/src/org/eclipse/m2m/internal/qvt/oml/blackbox/java/Java2QVTTypeResolver.java b/plugins/org.eclipse.m2m.qvt.oml/src/org/eclipse/m2m/internal/qvt/oml/blackbox/java/Java2QVTTypeResolver.java
index 85a33f6..de61556 100644
--- a/plugins/org.eclipse.m2m.qvt.oml/src/org/eclipse/m2m/internal/qvt/oml/blackbox/java/Java2QVTTypeResolver.java
+++ b/plugins/org.eclipse.m2m.qvt.oml/src/org/eclipse/m2m/internal/qvt/oml/blackbox/java/Java2QVTTypeResolver.java
@@ -428,18 +428,22 @@
 					while (iterator.hasNext()) {
 						EObject eObject = iterator.next();
 						
-						if (eObject instanceof GenClassifier) {
-							GenClassifier genClassifier = (GenClassifier) eObject;
-							
-							EClassifier ecoreClassifier = genClassifier.getEcoreClassifier();
-																
-							if (ecoreClassifier == eClassifier) {
-								String classifierInstanceName = genClassifier.getRawInstanceClassName();
+						try {
+							if (eObject instanceof GenClassifier) {
+								GenClassifier genClassifier = (GenClassifier) eObject;
 								
-								if (type.getName().equals(classifierInstanceName)) {
-									return true;
+								EClassifier ecoreClassifier = genClassifier.getEcoreClassifier();
+																	
+								if (ecoreClassifier == eClassifier) {
+									String classifierInstanceName = genClassifier.getRawInstanceClassName();
+									
+									if (type.getName().equals(classifierInstanceName)) {
+										return true;
+									}
 								}
 							}
+						} catch(NoClassDefFoundError e) {
+							break;
 						}
 					}
 				}