[
http://issues.apache.org/jira/browse/DIRSERVER-658?page=comments#action_12418748
]
Emmanuel Lecharny commented on DIRSERVER-658:
---------------------------------------------
I think that a patch like this one could solve the problem :
Index:
apacheds/core/src/main/java/org/apache/directory/server/core/partition/DefaultDirectoryPartitionNexus.java
===================================================================
---
apacheds/core/src/main/java/org/apache/directory/server/core/partition/DefaultDirectoryPartitionNexus.java
(revision 416873)
+++
apacheds/core/src/main/java/org/apache/directory/server/core/partition/DefaultDirectoryPartitionNexus.java
(working copy)
@@ -428,7 +428,7 @@
partitions.put( partition.getSuffix().toString(), partition );
Attribute namingContexts = rootDSE.get( NAMINGCTXS_ATTR );
- namingContexts.add( partition.getUpSuffix() );
+ namingContexts.add( partition.getUpSuffix().toString() );
}
@@ -442,7 +442,7 @@
}
Attribute namingContexts = rootDSE.get( NAMINGCTXS_ATTR );
- namingContexts.remove( partition.getUpSuffix() );
+ namingContexts.remove( partition.getUpSuffix().toString() );
partitions.remove( key );
partition.sync();
Alex, is this ok with you ?
> 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