[212147] classloader order problem.
diff --git a/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/internal/java/adapters/jdk/JDKAdaptor.java b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/internal/java/adapters/jdk/JDKAdaptor.java
index 5dde389..17c0a19 100644
--- a/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/internal/java/adapters/jdk/JDKAdaptor.java
+++ b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/internal/java/adapters/jdk/JDKAdaptor.java
@@ -11,7 +11,7 @@
  *******************************************************************************/
 /*
  *  $RCSfile: JDKAdaptor.java,v $
- *  $Revision: 1.2 $  $Date: 2004/01/13 16:16:21 $ 
+ *  $Revision: 1.3 $  $Date: 2004/07/16 15:31:10 $ 
  */
 
 import java.lang.reflect.Array;
@@ -249,22 +249,22 @@
 		}
 		return type.getName();
 	}
-	/**
-	 * Try to load a Class with a @qualifiedName using the alternateClassLoader if
-	 * available.  If no alternateClassLoader is available, use Class.forName().
-	 * Use only the alternateClassLoader if its parent is the same as the System ClassLoader
-	 * so we do not try the System ClassLoader twice.  If not, use Class.forName() first
-	 * before trying the alternateClassLoader.
-	 */
+
 	protected Class loadFromAlternateClassLoader(String qualifiedName) throws ClassNotFoundException {
+		// Changed for defect #212147 botp@ausaix19.austin.ibm.com@7630 system.
 		if (getAlternateClassLoader() != null) {
-			if (getAlternateClassLoader().getParent() == ClassLoader.getSystemClassLoader()) {
+			try {
 				return getAlternateClassLoader().loadClass(qualifiedName);
-			} else {
-				try {
-					return Class.forName(qualifiedName);
-				} catch (ClassNotFoundException cnfe2) {
-					return getAlternateClassLoader().loadClass(qualifiedName);
+			} catch (ClassNotFoundException cnf2) {
+				ClassLoader systemClassLoader = ClassLoader.getSystemClassLoader();
+				if (systemClassLoader != null) {
+					ClassLoader parent = getAlternateClassLoader().getParent();					
+					while (parent != null) {
+						if (parent == systemClassLoader)
+							throw cnf2;	// We've already tried the system class loader. Go no further.
+						parent = parent.getParent();
+					}
+					return systemClassLoader.loadClass(qualifiedName);
 				}
 			}
 		}