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

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Jan 8 15:16:45 EST 2009


Author: stalep
Date: 2009-01-08 15:16:44 -0500 (Thu, 08 Jan 2009)
New Revision: 82711

Modified:
   projects/aop/trunk/aop/src/main/org/jboss/aop/reflectprototype/JavassistAopTypeInfoFactoryImpl.java
Log:
[JBAOP-684]
added a simple comparemethod after the object have been
fetched from cache. if changes have been made, remove the
object from cache and put in the new one.


Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/reflectprototype/JavassistAopTypeInfoFactoryImpl.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/reflectprototype/JavassistAopTypeInfoFactoryImpl.java	2009-01-08 18:22:54 UTC (rev 82710)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/reflectprototype/JavassistAopTypeInfoFactoryImpl.java	2009-01-08 20:16:44 UTC (rev 82711)
@@ -39,6 +39,7 @@
 import org.jboss.reflect.plugins.javassist.JavassistTypeInfo;
 import org.jboss.reflect.plugins.javassist.JavassistTypeInfoFactoryImpl;
 import org.jboss.reflect.spi.AnnotationValue;
+import org.jboss.reflect.spi.ClassInfo;
 import org.jboss.reflect.spi.NumberInfo;
 import org.jboss.reflect.spi.PrimitiveInfo;
 import org.jboss.reflect.spi.TypeInfo;
@@ -100,13 +101,18 @@
       {
          Object result = weak.get();
          if (result != null)
-            return result;
+         {
+            if(compare(clazz, (ClassInfo) result))
+               return result;
+            else
+            {
+               classLoaderCache.remove(clazz.getName());
+            }
+         }
       }
 
-//      how do we call instantiate?
       Object result = instantiate(clazz);
       
-
       weak = new WeakReference(result);
       classLoaderCache.put(clazz.getName(), weak);
       
@@ -291,5 +297,15 @@
 
       return (TypeInfo) get(clazz);
    }
+   
+   private boolean compare(CtClass clazz, ClassInfo info)
+   {
+      if(clazz.getDeclaredMethods().length == info.getDeclaredMethods().length &&
+            clazz.getDeclaredConstructors().length == info.getDeclaredConstructors().length &&
+            clazz.getDeclaredFields().length == info.getDeclaredFields().length)
+         return true;
+      else
+         return false;
+   }
 
 }




More information about the jboss-cvs-commits mailing list