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

Activity

Show:
Alex Miller
August 19, 2015, 8:58 AM

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.

Alex Miller
August 19, 2015, 8:58 AM

should be ready to screen now

Fogus
August 22, 2015, 4:53 AM

The patch and test are straight-forward and clean.

Rich Hickey
August 25, 2015, 1:54 AM

Can I get some more context in this diff please?

Alex Miller
August 25, 2015, 4:11 AM

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

Completed

Assignee

Unassigned

Reporter

Jeremy Heiler

Labels

Approval

Ok

Patch

Code and Test

Fix versions

Affects versions

Priority

Major