[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