[573449] Ensure class load failure in nested function
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 de61556..2b73161 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
@@ -423,28 +423,12 @@
 				ModelContent genModelContent = EmfUtil.safeLoadModel(genModelUri, resourceSet);
 				
 				if (genModelContent != null) {
-					Iterator<EObject> iterator = EcoreUtil.getAllContents(genModelContent.getContent());
-									
-					while (iterator.hasNext()) {
-						EObject eObject = iterator.next();
-						
-						try {
-							if (eObject instanceof GenClassifier) {
-								GenClassifier genClassifier = (GenClassifier) eObject;
-								
-								EClassifier ecoreClassifier = genClassifier.getEcoreClassifier();
-																	
-								if (ecoreClassifier == eClassifier) {
-									String classifierInstanceName = genClassifier.getRawInstanceClassName();
-									
-									if (type.getName().equals(classifierInstanceName)) {
-										return true;
-									}
-								}
-							}
-						} catch(NoClassDefFoundError e) {
-							break;
+					try {
+						if (isMatchingInstanceGenClassifier(eClassifier, type, genModelContent)) {
+							return true;
 						}
+					} catch(NoClassDefFoundError e) {
+						// Ignore failure due to missing org.eclipse.emf.ecore.codegen support
 					}
 				}
 			}
@@ -453,4 +437,21 @@
 		return false;
 	}
 
+	private static boolean isMatchingInstanceGenClassifier(EClassifier eClassifier, Class<?> type, ModelContent genModelContent) {
+		Iterator<EObject> iterator = EcoreUtil.getAllContents(genModelContent.getContent());
+		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();
+					if (type.getName().equals(classifierInstanceName)) {
+						return true;
+					}
+				}
+			}
+		}
+		return false;
+	}
 }