diff options
author | Rich Hickey <richhickey@gmail.com> | 2008-10-29 12:42:40 +0000 |
---|---|---|
committer | Rich Hickey <richhickey@gmail.com> | 2008-10-29 12:42:40 +0000 |
commit | d3d2b3a1523aac31887b7670a56fcf472a588771 (patch) | |
tree | 41223936656821eb15e09fabc743ec598371b074 /src | |
parent | 8dad2038fd97dc5757ca95a6ea515860f227502c (diff) |
fixed invokeMatchingMethod error report when null target
Diffstat (limited to 'src')
-rw-r--r-- | src/jvm/clojure/lang/Reflector.java | 13 |
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)); |