Le 03/04/2017 à 14:22, Maxim Solodovnik a écrit :
> Yes,
> Search for the user from OM (via directory API) fails with
> "DecoderException: The length of controls must not be null"
> (The full stack trace is in the first message of this thread)
Sorry that it took me so understand what was going on. The stack trace
is clear a control should not be null. We do have a null control in the
SearcResultDone :
0000 30 0e 02 01 02 65 07 0a 01 00 04 00 04 00 a0 00
which is :
30 0e LdapMessage
02 01 02 Message ID : 02
65 07 ProtocolOp : SearchResultDone
0a 01 00 LDAPResult.resultCode : LDAP_SUCCESS
04 00 LDAPResult.matchedDN : ""
04 00 LDAPResult.errorMessage : ""
a0 00 Controls : empty
Going back to RFC 4511 :
LDAPMessage ::= SEQUENCE {
messageID MessageID,
protocolOp CHOICE {
...
searchResDone SearchResultDone,
...,
intermediateResponse IntermediateResponse },
controls [0] Controls OPTIONAL }
We may have no controls, as it's optional. In this case, the 0xA0 ...
part at the end will simply not exist. Let's see what is Controls
structure :
Controls ::= SEQUENCE OF control Control
Here, if the SEQUENCE is empty, the encoded bytes for the length wll be
0x00, so we will have 0xA0 0x00.
The Controls code in the API is :
public void action( LdapMessageContainer<MessageDecorator<? extends
Message>> container ) throws DecoderException
{
TLV tlv = container.getCurrentTLV();
int expectedLength = tlv.getLength();
// The Length should be null
if ( expectedLength == 0 )
{
LOG.error( "The length of controls must not be null" );
// This will generate a PROTOCOL_ERROR
throw new DecoderException( "The length of controls must not
be null" );
}
if ( IS_DEBUG )
{
LOG.debug( "A new list of controls has been initialized" );
}
}
As you can see, there are two errors :
- the comment is wrong and should read : "The Length should *not* be null
- the length could actually be null
Bottom line, this is a bug that need to be fixed, and I'll do that ASAP.
May I ask you to filla JIRA with your first mail ad the stack trace for
clarity ?
Thanks !
--
Emmanuel Lecharny
Symas.com
directory.apache.org