Completed
Details
Assignee
UnassignedUnassignedReporter
Alex MillerAlex MillerLabels
Approval
OkPatch
Code and TestPriority
BlockerAffects versions
Fix versions
Details
Details
Assignee
Unassigned
UnassignedReporter
Alex Miller
Alex MillerLabels
Approval
Ok
Patch
Code and Test
Priority
Affects versions
Fix versions
Created October 7, 2018 at 4:04 PM
Updated October 9, 2018 at 9:41 PM
Resolved October 9, 2018 at 9:41 PM
https://clojure.atlassian.net/browse/CLJ-2066#icft=CLJ-2066 introduced a new reflective walk for matching accessible methods but the logic in that walk assumes it will find a method in the superclass hierarchy. If it does not, then it will produce an infinite loop.
This is an example of a concrete class (sun.nio.fs.UnixPath) which has a method startsWith which is declared as a default method on java.nio.file.Path:
(def p (java.nio.file.Paths/get "src" (into-array String []))) (.startsWith p "s")
Proposed: Instead, should walk all super classes, then walk all interfaces to find an accessible default method.
Patch: clj-2414-2.patch