All, ReferenceType.visibleMethods() has some problems with diamond shaped interface hierarchies. There is more information on the problem in the bug report.
The solution here is to maintain a list of interfaces that we have visited so that we do not visit interfaces (above the top of the diamond) more than once. This change is targeted for jdk9 so I will hold on to it until the repos open up. webrev: http://cr.openjdk.java.net/~sla/8028430/webrev.00/ bug: https://bugs.openjdk.java.net/browse/JDK-8028430 Thanks, /Staffan