[jboss-cvs] JBossAS SVN: r103917 - 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
Tue Apr 13 12:04:22 EDT 2010


Author: kabir.khan at jboss.com
Date: 2010-04-13 12:04:21 -0400 (Tue, 13 Apr 2010)
New Revision: 103917

Modified:
   projects/jboss-reflect/trunk/src/main/java/org/jboss/reflect/plugins/javassist/JavassistTypeInfo.java
Log:
[JBREFLECT-113] Avoid ClassNotFoundException if package-info cannot be found

Modified: projects/jboss-reflect/trunk/src/main/java/org/jboss/reflect/plugins/javassist/JavassistTypeInfo.java
===================================================================
--- projects/jboss-reflect/trunk/src/main/java/org/jboss/reflect/plugins/javassist/JavassistTypeInfo.java	2010-04-13 15:49:43 UTC (rev 103916)
+++ projects/jboss-reflect/trunk/src/main/java/org/jboss/reflect/plugins/javassist/JavassistTypeInfo.java	2010-04-13 16:04:21 UTC (rev 103917)
@@ -34,6 +34,7 @@
 import java.util.concurrent.CopyOnWriteArrayList;
 
 import javassist.CannotCompileException;
+import javassist.ClassPool;
 import javassist.CtClass;
 import javassist.CtConstructor;
 import javassist.CtField;
@@ -125,17 +126,11 @@
    /** The value type if this is a Map */
    private volatile TypeInfo valueType = ClassInfoImpl.UNKNOWN_TYPE;
    
-   /** Whether we have initialized isMap */
-   private volatile boolean initializedIsMap;
-   
    /** Whether we are a map */
-   private volatile boolean isMap;
+   private volatile Boolean isMap;
    
-   /** Whether we have initialized isMap */
-   private volatile boolean initializedIsCollection;
-   
    /** Whether we are a map */
-   private volatile boolean isCollection;
+   private volatile Boolean isCollection;
    
    /**
     * Create a new JavassistTypeInfo.
@@ -487,12 +482,11 @@
 
    public boolean isCollection()
    {
-      if (!initializedIsCollection)
+      if (isCollection == null)
       {
          try
          {
             isCollection = JavassistHelper.determineHierarchy(null, ctClass, ctClass.getClassPool().get(Collection.class.getName()));
-            initializedIsCollection = true;
          }
          catch (NotFoundException e)
          {
@@ -504,12 +498,11 @@
 
    public boolean isMap()
    {
-      if (!initializedIsMap)
+      if (isMap == null)
       {
          try
          {
             isMap = JavassistHelper.determineHierarchy(null, ctClass, ctClass.getClassPool().get(Map.class.getName()));
-            initializedIsMap = true;
          }
          catch (NotFoundException e)
          {
@@ -892,10 +885,14 @@
             AnnotationValue[] annotations = null;
             try
             {
-               ClassInfo info = (ClassInfo)factory.get(packageName + ".package-info", ctClass.getClassPool().getClassLoader());
+               ClassLoader cl = ctClass.getClassPool().getClassLoader();
+
+               @SuppressWarnings("static-access")
+               CtClass clazz = factory.getPoolFactory().getPoolForLoader(cl).get(packageName + ".package-info");
+               ClassInfo info = (ClassInfo)factory.get(clazz, null, cl);
                annotations = info.getAnnotations();
             }
-            catch (ClassNotFoundException e)
+            catch (NotFoundException e)
             {
             }
             




More information about the jboss-cvs-commits mailing list