It looks like it was a defect in the original generification done in 7072353. Looks okay to me. Thanks.
> On 12 Jul 2016, at 22:13, Rob McKenna <rob.mcke...@oracle.com> wrote: > > Hi folks, > > Looking for a review for this change: > > https://bugs.openjdk.java.net/browse/JDK-8141148 > http://cr.openjdk.java.net/~robm/8141148/webrev.01/ > > A fairly straightforward fix for a class cast problem. From the bug: > > As a result of https://bugs.openjdk.java.net/browse/JDK-7072353: > > http://hg.openjdk.java.net/jdk8u/jdk8u-dev/jdk/rev/18329abcdb7c > > The test attached to the bug fails with the following trace: > > Exception in thread "main" java.lang.ClassCastException: > com.sun.jndi.ldap.LdapSearchEnumeration cannot be cast to > com.sun.jndi.ldap.LdapNamingEnumeration > at > com.sun.jndi.ldap.LdapNamingEnumeration.getReferredResults(LdapNamingEnumeration.java:78) > at > com.sun.jndi.ldap.LdapNamingEnumeration.getReferredResults(LdapNamingEnumeration.java:36) > at > com.sun.jndi.ldap.AbstractLdapNamingEnumeration.hasMoreReferrals(AbstractLdapNamingEnumeration.java:330) > at > com.sun.jndi.ldap.AbstractLdapNamingEnumeration.hasMoreImpl(AbstractLdapNamingEnumeration.java:227) > at > com.sun.jndi.ldap.AbstractLdapNamingEnumeration.hasMore(AbstractLdapNamingEnumeration.java:189) > at > com.sun.jndi.ldap.AbstractLdapNamingEnumeration.hasMoreElements(AbstractLdapNamingEnumeration.java:117) > at TestLdap.query(TestLdap.java:43) > at TestLdap.main(TestLdap.java:19) > > Post refactor we have a NamingEnumeration interface which is implemented by > an abstract class AbstractLdapNamingEnumeration. > > 3 implementations, LdapBindingEnumeration, LdapNamingEnumeration & > LdapSearchEnumeration extend AbstractLdapNamingEnumeration. > > Each implementation has its own getReferredResults method which returns an > object of the individual implementations type. > > Unfortunately this falls down (as can be seen in the stack) because an > LdapNamingEnumeration.getReferredResults can call refCtx.search, which > returns an LdapSearchEnumeration. This leads to a situation where > LdapNamingEnumeration needs to cast an LdapSearchEnumeration which results in > the exception above. > > -Rob