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

Ok

Patch

Code and Test

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