You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@directory.apache.org by "Emmanuel Lecharny (JIRA)" <ji...@apache.org> on 2006/06/24 15:48:31 UTC

[jira] Closed: (DIRSERVER-214) ClassCast excpetion in org.apache.ldap.common.berlib.asn1.SnickersEncoder

     [ http://issues.apache.org/jira/browse/DIRSERVER-214?page=all ]
     
Emmanuel Lecharny closed DIRSERVER-214:
---------------------------------------


fixed

> ClassCast excpetion in org.apache.ldap.common.berlib.asn1.SnickersEncoder
> -------------------------------------------------------------------------
>
>          Key: DIRSERVER-214
>          URL: http://issues.apache.org/jira/browse/DIRSERVER-214
>      Project: Directory ApacheDS
>         Type: Bug

>   Components: ldap
>     Versions: pre-1.0
>  Environment: Not relevant
>     Reporter: Emmanuel Lecharny
>     Assignee: Alex Karasulu
>     Priority: Blocker
>      Fix For: pre-1.0
>  Attachments: clients.tar.gz
>
> I get a ClassCast exception while running LdapSearch main :
> java.lang.ClassCastException
> 	at org.apache.ldap.common.berlib.asn1.SnickersEncoder$OutputCallback.encodeOccurred(SnickersEncoder.java:177)
> 	at org.apache.asn1.codec.stateful.AbstractStatefulEncoder.encodeOccurred(AbstractStatefulEncoder.java:130)
> 	at org.apache.asn1.ber.TupleEncodingVisitor.flush(TupleEncodingVisitor.java:173)
> 	at org.apache.ldap.common.berlib.asn1.encoder.SnickersLdapEncoder.encode(SnickersLdapEncoder.java:209)
> 	at org.apache.ldap.common.berlib.asn1.SnickersEncoder.encodeBlocking(SnickersEncoder.java:66)
> 	at org.apache.ldap.common.message.MessageEncoder.encodeBlocking(MessageEncoder.java:90)
> 	at org.apache.ldap.clients.LdapBind.bind(LdapBind.java:350)
> 	at org.apache.ldap.clients.LdapSearch.main(LdapSearch.java:408)
>        public void encodeOccurred(StatefulEncoder encoder, Object encoded) {
>             try
>             {
>                 channel.write( ( ByteBuffer ) encoded );   <--- Object is supposed to be a ByteBuffer [], not a ByteBuffer
> Substituing those lines to the one that cause the exception seems to correct it :
>        public void encodeOccurred(StatefulEncoder encoder, Object encoded) {
>             try
>             {
>                 //channel.write( ( ByteBuffer ) encoded );   <--- Object is supposed to be a ByteBuffer [], not a ByteBuffer
>                 ByteBuffer[] buffers = (ByteBuffer[])encoded;
>                 
>                 // int nbWritten = 0;  // for debug sake
>                 
>                 for (int i=0; i<buffers.length; i++) {
>                     //nbWritten += channel.write(buffers[i]);
>                     channel.write(buffers[i]);
>                 }
>                 
>                 // System.out.println("Bytes written (" + nbWritten + ") :");
>                 ...
> No more exception, then, but, as far as I went, it does not help the whole thing to work correctly. I do not receive any answer from my favorite OpenLdap server. I'm currently checking the PDU to see if it's FUBR or not (ethereal to the rescue). Takes time...

-- 
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