Patch that works for that particular problem:

diff --git a/src/jvm/clojure/lang/Reflector.java b/src/jvm/clojure/
lang/Reflector.java
index 4a7061f..445961a 100644
--- a/src/jvm/clojure/lang/Reflector.java
+++ b/src/jvm/clojure/lang/Reflector.java
@@ -80,7 +80,11 @@ static Object invokeMatchingMethod(String
methodName, List me
                {
                //public method of non-public class, try to find it in
hierarchy
                Method oldm = m;
-               m = getAsMethodOfPublicBase(m.getDeclaringClass(), m);
+               if (target != null)
+                       m = getAsMethodOfPublicBase(target.getClass(),
m);
+               else
+                       m = getAsMethodOfPublicBase(m.getDeclaringClass
(), m);
+
                if(m == null)
                        throw new IllegalArgumentException("Can't call
public me
 
oldm.toString());


On Jan 13, 4:19 pm, jpraher <j...@hapra.at> wrote:
> == Description ==
> The found method's declaringClass is used to call
> getAsMethodOfPublicBase - this might lead to problems see below.
>
> == Steps to Repdoduce ==
> (let [vm (vm-attach-socket host port)
>           eventrequestmanager (.eventRequestManager vm)
>           method-entry-request (.createMethodEntryRequest
> eventrequestmanager)]
>    (.addClassFilter method-entry-request "clojure.lang.*"))
>
> fails with:
> Can't call public method of non-public class: public synchronized void
> com.sun.tools.jdi.EventRequestManagerImpl
> $ClassVisibleEventRequestImpl.addClassFilter(java.lang.String)
>   [Thrown class java.lang.IllegalArgumentException]
-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Reply via email to