[jboss-cvs] JBossAS SVN: r57708 - branches/JBoss_4_0_4_GA_CP/common/src/main/org/jboss/util/loading

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Oct 18 15:29:27 EDT 2006


Author: fnasser at redhat.com
Date: 2006-10-18 15:29:26 -0400 (Wed, 18 Oct 2006)
New Revision: 57708

Modified:
   branches/JBoss_4_0_4_GA_CP/common/src/main/org/jboss/util/loading/DelegatingClassLoader.java
Log:
ASPATCH-104: JBAS-3692: NoClassDefFoundError performing remote lookup of dynamic proxy

Modified: branches/JBoss_4_0_4_GA_CP/common/src/main/org/jboss/util/loading/DelegatingClassLoader.java
===================================================================
--- branches/JBoss_4_0_4_GA_CP/common/src/main/org/jboss/util/loading/DelegatingClassLoader.java	2006-10-18 19:05:18 UTC (rev 57707)
+++ branches/JBoss_4_0_4_GA_CP/common/src/main/org/jboss/util/loading/DelegatingClassLoader.java	2006-10-18 19:29:26 UTC (rev 57708)
@@ -36,11 +36,11 @@
  * @author <a href="mailto:adrian at jboss.org">Adrian Brock</a>
  * @version $Revision$
  */
-public class DelegatingClassLoader
-   extends URLClassLoader
+public class DelegatingClassLoader extends URLClassLoader
 {
    /** The value returned by {@link getURLs}. */
-   public static final URL[] EMPTY_URL_ARRAY = {};
+   public static final URL[] EMPTY_URL_ARRAY =
+   {};
 
    /** Whether to use standard loading */
    protected boolean standard = false;
@@ -78,15 +78,26 @@
     * @return the loaded class
     * @throws ClassNotFoundException when the class could not be found
     */
-   protected Class loadClass(String className, boolean resolve)
-      throws ClassNotFoundException
+   protected Class loadClass(String className, boolean resolve) throws ClassNotFoundException
    {
       // Revert to standard rules
       if (standard)
          return super.loadClass(className, resolve);
 
       // Ask the parent
-      Class clazz = getParent().loadClass(className);
+      Class clazz = null;
+      try
+      {
+         clazz = getParent().loadClass(className);
+      }
+      catch (ClassNotFoundException e)
+      {
+         //    Not found in parent,
+         //    maybe it is a proxy registered against this classloader?
+         clazz = findLoadedClass(className);
+         if (clazz == null)
+            throw e;
+      }
 
       // Link the class
       if (resolve)




More information about the jboss-cvs-commits mailing list