[jboss-cvs] JBossAS SVN: r104110 - projects/jboss-reflect/trunk/src/main/java/org/jboss/reflect/plugins/javassist.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Wed Apr 21 08:28:01 EDT 2010
Author: kabir.khan at jboss.com
Date: 2010-04-21 08:28:00 -0400 (Wed, 21 Apr 2010)
New Revision: 104110
Modified:
projects/jboss-reflect/trunk/src/main/java/org/jboss/reflect/plugins/javassist/JavassistTypeInfoFactoryImpl.java
Log:
[JBREFLECT-112] Cache the TypeInfos that have been delegated to introspection
Modified: projects/jboss-reflect/trunk/src/main/java/org/jboss/reflect/plugins/javassist/JavassistTypeInfoFactoryImpl.java
===================================================================
--- projects/jboss-reflect/trunk/src/main/java/org/jboss/reflect/plugins/javassist/JavassistTypeInfoFactoryImpl.java 2010-04-21 12:15:04 UTC (rev 104109)
+++ projects/jboss-reflect/trunk/src/main/java/org/jboss/reflect/plugins/javassist/JavassistTypeInfoFactoryImpl.java 2010-04-21 12:28:00 UTC (rev 104110)
@@ -573,9 +573,12 @@
IntrospectionTypeInfoFactory factory = new IntrospectionTypeInfoFactory();
return factory.getTypeInfo(name, cl);
}
-
+
/**
* Reads the type info from the cache
+ *
+ * @param name the class name
+ * @param classLoaderCache The cached type infos for the loader
*/
private TypeInfo getFromCache(String name, Map<String, WeakReference<TypeInfo>> classLoaderCache)
{
@@ -588,10 +591,12 @@
CtClass clazz = getCtClass(result, false);
if (clazz != null)
{
- if (compare(clazz, (ClassInfo)result))
- return result;
+ //Only do this check if it is a Javassist implementation. delegateToIntrospectionImplementation()
+ //loads up Reflect implementations in some cases
+ if (!compare(clazz, (ClassInfo)result))
+ classLoaderCache.remove(name);
}
- classLoaderCache.remove(name);
+ return result;
}
}
return null;
More information about the jboss-cvs-commits
mailing list