Fix an edge case in the Reflector's search for a public method declaration

Description

Can't invoke from Clojure:

Cause: The Reflector is not taking into account that a non-public class can implement an interface, and have a non-public parent class contain an implementation of a method on that interface.

Approach: The solution I took is to pass in the target object's class instead of the declaring class of the method object.

Patch: clj-1609-3.patch + clj-1609-test.patch

Screened by: Fogus

Environment

None

Attachments

4

Activity

Show:

Alex Miller August 24, 2015 at 6:11 PM

Added clj-1609-3.patch which is identical to prior but has 15 lines of context instead.

Rich Hickey August 24, 2015 at 3:54 PM

Can I get some more context in this diff please?

Fogus August 21, 2015 at 6:53 PM

The patch and test are straight-forward and clean.

Alex Miller August 18, 2015 at 10:58 PM

should be ready to screen now

Alex Miller August 18, 2015 at 10:58 PM

clj-1609-2.patch is identical to previous patch, just adds jira id to beginning of commit message

clj-1609-test.patch adds a reflection test that fails without the patch and passes with it.

Completed

Details

Assignee

Reporter

Labels

Approval

Patch

Priority

Affects versions

Fix versions

Created December 5, 2014 at 6:39 AM
Updated September 3, 2015 at 6:21 PM
Resolved September 3, 2015 at 6:21 PM