[jboss-cvs] JBossAS SVN: r105961 - in projects/jboss-reflect/trunk: src/main/java/org/jboss/reflect/plugins/bytecode and 1 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Jun 11 08:06:51 EDT 2010


Author: kabir.khan at jboss.com
Date: 2010-06-11 08:06:50 -0400 (Fri, 11 Jun 2010)
New Revision: 105961

Modified:
   projects/jboss-reflect/trunk/pom.xml
   projects/jboss-reflect/trunk/src/main/java/org/jboss/reflect/plugins/bytecode/BytecodeTypeInfoFactoryImpl.java
   projects/jboss-reflect/trunk/src/main/java/org/jboss/reflect/plugins/bytecode/bytes/asm/AsmClassBytes.java
   projects/jboss-reflect/trunk/src/main/java/org/jboss/reflect/plugins/bytecode/bytes/asm/Util.java
Log:
[JBREFLECT-125] Optimize asm implementation more

Modified: projects/jboss-reflect/trunk/pom.xml
===================================================================
--- projects/jboss-reflect/trunk/pom.xml	2010-06-11 12:05:49 UTC (rev 105960)
+++ projects/jboss-reflect/trunk/pom.xml	2010-06-11 12:06:50 UTC (rev 105961)
@@ -21,7 +21,7 @@
     <version.jboss.common.core>2.2.17.GA</version.jboss.common.core>
     <version.jboss.logging.spi>2.2.0.CR1</version.jboss.logging.spi>
     <version.jboss.logging.log4j>2.2.0.CR1</version.jboss.logging.log4j>
-    <version.javassist>3.12.1-SNAPSHOT</version.javassist>
+    <version.javassist>3.12.0.GA</version.javassist>
     <version.org.jboss.test>1.1.5.GA</version.org.jboss.test>
     <version.junit>4.8.1</version.junit>
     <version.jboss.profiler.jvmti>1.0.0.CR5</version.jboss.profiler.jvmti>

Modified: projects/jboss-reflect/trunk/src/main/java/org/jboss/reflect/plugins/bytecode/BytecodeTypeInfoFactoryImpl.java
===================================================================
--- projects/jboss-reflect/trunk/src/main/java/org/jboss/reflect/plugins/bytecode/BytecodeTypeInfoFactoryImpl.java	2010-06-11 12:05:49 UTC (rev 105960)
+++ projects/jboss-reflect/trunk/src/main/java/org/jboss/reflect/plugins/bytecode/BytecodeTypeInfoFactoryImpl.java	2010-06-11 12:06:50 UTC (rev 105961)
@@ -104,8 +104,8 @@
    {
       if (finder == null)
       {
-         //this.finder = ClassLoaderFinder.LoadClass.INSTANCE;
-         this.finder = CachingLoadClassClassLoaderFinder.INSTANCE;
+         this.finder = ClassLoaderFinder.LoadClass.INSTANCE;
+//         this.finder = CachingLoadClassClassLoaderFinder.INSTANCE;
          return;
       }
       this.finder = finder;
@@ -361,6 +361,7 @@
          name = Descriptor.toClassName(name);
       
       Map<String, WeakReference<TypeInfo>> classLoaderCache = getClassLoaderCache(cl);
+      Map<String, WeakReference<TypeInfo>> originalCache = classLoaderCache;
       TypeInfo result = getFromCache(name, classLoaderCache);
       if (result != null)
          return result;
@@ -368,8 +369,6 @@
       ClassLoader real = cl;
       if (classBytes == null)
       {
-         //TODO If the class was an array we need some way to find the classloader for that
-         
          real = findClassLoaderForClass(cl, name);
          if (real == null)
             real = cl;
@@ -379,7 +378,10 @@
             classLoaderCache = getClassLoaderCache(real);
             result = getFromCache(name, classLoaderCache);
             if (result != null)
+            {
+               originalCache.put(name, new WeakReference<TypeInfo>(result));
                return result;
+            }
          }
 
          classBytes = loadClassBytes(real, name);
@@ -397,6 +399,8 @@
 
       WeakReference<TypeInfo>weak = new WeakReference<TypeInfo>(result);
       classLoaderCache.put(name, weak);
+      if (originalCache != classLoaderCache)
+         originalCache.put(name, weak);
       
 //      we just ignore generate(..) since it doesnt do anything atm
 //      generate(clazz, result);

Modified: projects/jboss-reflect/trunk/src/main/java/org/jboss/reflect/plugins/bytecode/bytes/asm/AsmClassBytes.java
===================================================================
--- projects/jboss-reflect/trunk/src/main/java/org/jboss/reflect/plugins/bytecode/bytes/asm/AsmClassBytes.java	2010-06-11 12:05:49 UTC (rev 105960)
+++ projects/jboss-reflect/trunk/src/main/java/org/jboss/reflect/plugins/bytecode/bytes/asm/AsmClassBytes.java	2010-06-11 12:06:50 UTC (rev 105961)
@@ -370,13 +370,7 @@
       public ClassReader getClassReader()
       {
          if (reader == null)
-         {
-            synchronized (this)
-            {
-               if (reader == null)
-                  reader = loadClassReader();
-            }
-         }
+            reader = loadClassReader();
          return reader;
       }
    }

Modified: projects/jboss-reflect/trunk/src/main/java/org/jboss/reflect/plugins/bytecode/bytes/asm/Util.java
===================================================================
--- projects/jboss-reflect/trunk/src/main/java/org/jboss/reflect/plugins/bytecode/bytes/asm/Util.java	2010-06-11 12:05:49 UTC (rev 105960)
+++ projects/jboss-reflect/trunk/src/main/java/org/jboss/reflect/plugins/bytecode/bytes/asm/Util.java	2010-06-11 12:06:50 UTC (rev 105961)
@@ -126,7 +126,6 @@
       
       Map<String, String> returnTypesByName;
       
-      
       AnnotationReader(ParentReader parent, ClassLoader loader, String desc)
       {
          this.parent = parent;



More information about the jboss-cvs-commits mailing list