diff options
author | Rich Hickey <richhickey@gmail.com> | 2009-05-18 18:31:18 +0000 |
---|---|---|
committer | Rich Hickey <richhickey@gmail.com> | 2009-05-18 18:31:18 +0000 |
commit | 2cdd5ec3aa03204722a84d86841011a1b0d8d764 (patch) | |
tree | 39b214ec3c556be98fad5ecc3a3a72b65c31c1e5 /src | |
parent | dbb85aafafc90a9b6021ef58c5cd4bd8a20600fc (diff) |
enhanced message for Can't call public method of non-public class
Diffstat (limited to 'src')
-rw-r--r-- | src/jvm/clojure/lang/Reflector.java | 6 |
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)); |