directory-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jérôme Baumgarten (JIRA) <directory-...@incubator.apache.org>
Subject [jira] Created: (DIRSNICKERS-110) [TWIX] encoding : missing accents
Date Mon, 26 Sep 2005 22:25:52 GMT
[TWIX] encoding : missing accents
---------------------------------

         Key: DIRSNICKERS-110
         URL: http://issues.apache.org/jira/browse/DIRSNICKERS-110
     Project: Directory ASN1
        Type: Bug
  Components: BER Runtime  
    Reporter: Jérôme Baumgarten
 Assigned to: Alex Karasulu 


It seems there are problems when encoding accents (I believe it is same with exotic characters
like β).

In TwixTransformer, private LdapResult transformLdapResult(LdapResultImpl snickersLdapResult),

I think that line 729 shoud be
twixLdapResult.setErrorMessage( new LdapString( snickersLdapResult.getErrorMessage().getBytes("UTF-8")
) );
an error message can contain accents (or at least that's what I think, I haven't checked with
the RFC, it's getting kinda late here in Paris).

Line 753 should be
twixLdapResult.setMatchedDN( new LdapDN( snickersLdapResult.getMatchedDn().getBytes("UTF-8")
) );

Line 780 should be
LdapURL ldapUrl = new LdapURL( referral.getBytes("UTF-8") );


In TwixTransformer, private void transformSearchResultEntry( LdapMessage twixMessage, Message
snickersMessage )

Line 977 should be (a DN can definitely contain accents)
searchResultEntry.setObjectName( new LdapDN( snickersSearchResultResponse.getObjectName().getBytes("UTF-8")
) );

SearchResultEntry, public int computeLength() does take into account the fact that the the
string value(s) of the attribute will be encoded as UTF-8 in Value.encode(ByteBuffer buffer,
String string). So if the value contains characters coded on 2 bytes, there will be an EncoderException
saying that the PDU buffer size is too small. Also, according to a mail exchange I had with
Emmanuel, there also is another mistake in the length computation, it should be something
like :
byte[] bytes = stringValue.getBytes( "UTF-8" );
localValuesLength += 1 + Length.getNbBytes( bytes.length ) +
bytes.length;

Jerome

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


Mime
View raw message