Update of /cvsroot/commonjava/commonjava-projects/commonjava-reflection/src/java/org/commonjava/reflection
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10722/src/java/org/commonjava/reflection
Modified Files:
Reflector.java
Log Message:
added null check/exception throw to getMethod() and getConstructor() in Reflector, to make it easier to debug actual problems. Was throwing NPE from higher-level of call stack, which meant nothing to outside observer.
Index: Reflector.java
===================================================================
RCS file: /cvsroot/commonjava/commonjava-projects/commonjava-reflection/src/java/org/commonjava/reflection/Reflector.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- Reflector.java 18 Sep 2003 05:55:55 -0000 1.1
+++ Reflector.java 27 Feb 2004 06:43:59 -0000 1.2
@@ -179,7 +179,7 @@
Map constructorMap = getConstructorMap(targetClass);
StringBuffer key = new StringBuffer(200);
- key.append("$c(");
+ key.append("(");
for(int i=0, len=params.length; i<len; i++){
key.append(params[i].getName());
key.append(",");
@@ -215,6 +215,13 @@
}
}
+ if(constructor == null){
+ throw new ReflectorException(
+ "Error retrieving constructor object for: " +
+ targetClass.getName() + paramKey
+ );
+ }
+
return constructor;
}
@@ -232,10 +239,12 @@
Map methodMap = getMethodMap(targetClass, methodName);
StringBuffer key = new StringBuffer(200);
+ key.append("(");
for(int i=0, len=params.length; i<len; i++){
key.append(params[i].getName());
key.append(",");
}
+ key.append(")");
Method method = null;
@@ -262,6 +271,13 @@
}
}
+ if(method == null){
+ throw new ReflectorException(
+ "Error retrieving method object for: " +
+ targetClass.getName() + "." + methodName + paramKey
+ );
+ }
+
return method;
}
|