[jboss-cvs] JBossAS SVN: r90520 - projects/aop/branches/Branch_2_1_IBM/aop/src/main/java/org/jboss/aop/util.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Jun 23 09:19:00 EDT 2009


Author: kabir.khan at jboss.com
Date: 2009-06-23 09:19:00 -0400 (Tue, 23 Jun 2009)
New Revision: 90520

Modified:
   projects/aop/branches/Branch_2_1_IBM/aop/src/main/java/org/jboss/aop/util/GetDeclaringClassUtil.java
Log:
[JBAOP-740] Better determination of declaring class from name

Modified: projects/aop/branches/Branch_2_1_IBM/aop/src/main/java/org/jboss/aop/util/GetDeclaringClassUtil.java
===================================================================
--- projects/aop/branches/Branch_2_1_IBM/aop/src/main/java/org/jboss/aop/util/GetDeclaringClassUtil.java	2009-06-23 12:32:20 UTC (rev 90519)
+++ projects/aop/branches/Branch_2_1_IBM/aop/src/main/java/org/jboss/aop/util/GetDeclaringClassUtil.java	2009-06-23 13:19:00 UTC (rev 90520)
@@ -50,17 +50,25 @@
       
       if (declaring == null)
       {
-         int last = clazz.getName().lastIndexOf('$');
+         String name = clazz.getName();
+         int last = name.lastIndexOf('$');
          if (last >= 0)
          {
-            try
+            ClassLoader cl = getClassLoader(clazz);
+            while (declaring == null && last >= 0)
             {
-               ClassLoader cl = getClassLoader(clazz);
-               declaring = cl.loadClass(clazz.getName().substring(0, last));
+               try
+               {
+                  declaring = cl.loadClass(clazz.getName().substring(0, last));
+               }
+               catch(ClassNotFoundException e)
+               {
+                  last = name.lastIndexOf('$', last -1);
+               }
             }
-            catch (ClassNotFoundException e)
+            if (declaring == null)
             {
-               throw new RuntimeException(e);
+               throw new RuntimeException("No declaring class could be determined for " + clazz.getName());
             }
          }
       }




More information about the jboss-cvs-commits mailing list