[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