[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