[jboss-cvs] JBossAS SVN: r77079 - projects/aop/trunk/aop/src/main/org/jboss/aop.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Aug 14 15:09:23 EDT 2008


Author: flavia.rainone at jboss.com
Date: 2008-08-14 15:09:23 -0400 (Thu, 14 Aug 2008)
New Revision: 77079

Modified:
   projects/aop/trunk/aop/src/main/org/jboss/aop/ClassInstanceAdvisor.java
Log:
[JBAOP-617] To play on the safe side, added a check to ClassInstanceAdvisor finalize method, to verify if advisor
and the advised class are not null before invoking hotswap... Of course, wouldn't it do this check and get a NPE,
the JVM would ignore the exception as it is being thrown by a finalize method.
Just avoiding useless exceptions here.

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/ClassInstanceAdvisor.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/ClassInstanceAdvisor.java	2008-08-14 19:05:14 UTC (rev 77078)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/ClassInstanceAdvisor.java	2008-08-14 19:09:23 UTC (rev 77079)
@@ -354,11 +354,24 @@
     */
    protected void finalize()
    {
-      ClassLoader classLoader = getClassAdvisor().getClazz().getClassLoader();
-      if (this.interceptorChainObserver == null || !AspectManager.getRegisteredCLs().containsKey(classLoader))
+      Advisor advisor = getClassAdvisor();
+      // gc'ed
+      if (advisor == null)
       {
          return;
       }
+      Class<?> advisedClass = advisor.getClazz();
+      // gc'ed
+      if (advisedClass == null)
+      {
+         return;
+      }
+      ClassLoader classLoader = advisedClass.getClassLoader();
+      if (this.interceptorChainObserver == null ||
+            !AspectManager.getRegisteredCLs().containsKey(classLoader))
+      {
+         return;
+      }
       this.interceptorChainObserver.allInstanceInterceptorsRemoved(this);
    }
    




More information about the jboss-cvs-commits mailing list