summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/jvm/clojure/lang/Reflector.java6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/jvm/clojure/lang/Reflector.java b/src/jvm/clojure/lang/Reflector.java
index b62ef7f0..4a7061f4 100644
--- a/src/jvm/clojure/lang/Reflector.java
+++ b/src/jvm/clojure/lang/Reflector.java
@@ -79,10 +79,12 @@ static Object invokeMatchingMethod(String methodName, List methods, Object targe
if(!Modifier.isPublic(m.getDeclaringClass().getModifiers()))
{
//public method of non-public class, try to find it in hierarchy
+ Method oldm = m;
m = getAsMethodOfPublicBase(m.getDeclaringClass(), m);
+ if(m == null)
+ throw new IllegalArgumentException("Can't call public method of non-public class: " +
+ oldm.toString());
}
- if(m == null)
- throw new IllegalArgumentException(noMethodReport(methodName,target));
try
{
return prepRet(m.invoke(target, boxedArgs));