[ http://issues.apache.org/jira/browse/DIRSERVER-658?page=all ] Emmanuel Lecharny resolved DIRSERVER-658: -----------------------------------------
Resolution: Fixed Fixed by modifiying the way NamingContexts are stored in the Attribute object : they are now stored as String, not as LdapDN objects. Regression tests passed ok. > ClassCast exception when fetching DNs from root DES > --------------------------------------------------- > > Key: DIRSERVER-658 > URL: http://issues.apache.org/jira/browse/DIRSERVER-658 > Project: Directory ApacheDS > Type: Bug > Versions: 1.0-RC4 > Reporter: Emmanuel Lecharny > Assignee: Emmanuel Lecharny > > When fetching for DNs in LdapBrowser, you get an exception while encoding the > SearchResultEntry : > ... > Caused by: java.lang.ClassCastException: > org.apache.directory.shared.ldap.name.LdapDN > at > org.apache.directory.shared.ldap.codec.search.SearchResultEntry.computeLength(SearchResultEntry.java:240) > at > org.apache.directory.shared.ldap.codec.LdapMessage.computeLength(LdapMessage.java:530) > at > org.apache.directory.shared.ldap.codec.LdapMessage.encode(LdapMessage.java:602) > at > org.apache.directory.shared.ldap.codec.TwixEncoder.encodeBlocking(TwixEncoder.java:121) > at > org.apache.directory.shared.ldap.codec.TwixEncoder.encode(TwixEncoder.java:200) > at > org.apache.directory.shared.ldap.message.MessageEncoder.encode(MessageEncoder.java:131) > at > org.apache.mina.filter.codec.asn1.Asn1CodecEncoder.encode(Asn1CodecEncoder.java:55) > at > org.apache.mina.filter.codec.ProtocolCodecFilter.filterWrite(ProtocolCodecFilter.java:226) > ... 22 more > The problem is that when encoding a SearchResultEntry, the values are > supposed to be Strings or byte arrays, not LdapDNs. When you fetch for DNs in > the root DSE, the result is stored in the SearchResultEntry as LdapDN > objects, not Strings, and it's allowad, as the method which set the value > accept an Object. > We have to fix two problems : > - first, check that the Object is either a String or a byte[], nothing else > (defensive programming) > - second, avoid storing LdapDN objects where String or byte[] are expected :) -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira