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
Assigned to: 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