Hey guys,

Have any of you had a chance to look into this? This is a showstopper for me using the latest ABCL as I have basic infrastructure code that is failing.

Would much appreciate someone having a look.

Thanks,
Alan

On Thu, Jul 19, 2012 at 3:54 PM, Jonathan P. Bona <jonathanbona@gmail.com> wrote:
Hello,

We found this issue while working with LSW. It seems to be a bug in
how public methods are found for inner classes. The last line of code
below results in an exception rather than finding and running the
size() method:

;;;----------------
(require :abcl-contrib)
(require :jss)
(jss::ensure-compatibility)
(setq headers (#"getHeaderFields" (#"openConnection" (jss::new
'java.net.url "http://google.com"))))

; a java.util.Collections$UnmodifiableRandomAccessList
(setq ural (#"get" headers (second (jss::set-to-list (#"keySet" headers)))))

;finds:  #<method public int
java.util.Collections$UnmodifiableCollection.size()>
(find "size" (#"getMethods" (#"getClass" ural) ) :test 'string-equal
:key #"getName")

; Java exception 'java.lang.NoSuchMethodException: No applicable
method named size found in java.lang.Object or
java.util.Collections$UnmodifiableRandomAccessList'.
(#"size" ural)
;;;----------------

I chased this into org.armedbear.lisp.Java, where findMethod is returning null.

- Jonathan Bona