summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRich Hickey <richhickey@gmail.com>2008-10-29 12:42:40 +0000
committerRich Hickey <richhickey@gmail.com>2008-10-29 12:42:40 +0000
commitd3d2b3a1523aac31887b7670a56fcf472a588771 (patch)
tree41223936656821eb15e09fabc743ec598371b074 /src
parent8dad2038fd97dc5757ca95a6ea515860f227502c (diff)
fixed invokeMatchingMethod error report when null target
Diffstat (limited to 'src')
-rw-r--r--src/jvm/clojure/lang/Reflector.java13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/jvm/clojure/lang/Reflector.java b/src/jvm/clojure/lang/Reflector.java
index 4821f34e..5f40772b 100644
--- a/src/jvm/clojure/lang/Reflector.java
+++ b/src/jvm/clojure/lang/Reflector.java
@@ -35,14 +35,17 @@ public static Object invokeInstanceMethod(Object target, String methodName, Obje
}
}
+private static String noMethodReport(String methodName, Object target){
+ return "No matching method found: " + methodName
+ + (target==null?"":" for " + target.getClass());
+}
static Object invokeMatchingMethod(String methodName, List methods, Object target, Object[] args)
throws Exception{
Method m = null;
Object[] boxedArgs = null;
if(methods.isEmpty())
{
- throw new IllegalArgumentException("No matching method found: " + methodName
- + " for " + target.getClass());
+ throw new IllegalArgumentException(noMethodReport(methodName,target));
}
else if(methods.size() == 1)
{
@@ -69,8 +72,7 @@ static Object invokeMatchingMethod(String methodName, List methods, Object targe
m = foundm;
}
if(m == null)
- throw new IllegalArgumentException("No matching method found: " + methodName
- + " for " + target.getClass());
+ throw new IllegalArgumentException(noMethodReport(methodName,target));
if(!Modifier.isPublic(m.getDeclaringClass().getModifiers()))
{
@@ -78,8 +80,7 @@ static Object invokeMatchingMethod(String methodName, List methods, Object targe
m = getAsMethodOfPublicBase(m.getDeclaringClass(), m);
}
if(m == null)
- throw new IllegalArgumentException("No matching method found: " + methodName
- + " for " + target.getClass());
+ throw new IllegalArgumentException(noMethodReport(methodName,target));
try
{
return prepRet(m.getReturnType(), m.invoke(target, boxedArgs));