[ 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

Reply via email to