directory-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Emmanuel Lecharny (JIRA)" <>
Subject [jira] Commented: (DIRSERVER-1319) Cannot save String values larger than 64 Kb
Date Thu, 23 Sep 2010 07:24:33 GMT


Emmanuel Lecharny commented on DIRSERVER-1319:

So the best would be to re-write the code, trying not to 'remember' about the snippet posted
by Denis Denis, if possible. The logic is pretty clear : WriteUTF8 cannt write String larger
than 64Kb because a 2 bytes long is written in front of the String, limitating the String

I would do that :
if ( string.length > 2^16 ) do
  for ( int i = 0; i < string.length; i+= 2^16)
    writeInt( 2^16 ) // deal with the case where i is not a multiple of 2^16 here
    writeUTF(string.substring(i, 2^16))  

I'm not sure we cannot use something else than Substring (for instance, dumping char oe by
one, using String.toCharArray() method)

> Cannot save String values larger than 64 Kb 
> --------------------------------------------
>                 Key: DIRSERVER-1319
>                 URL:
>             Project: Directory ApacheDS
>          Issue Type: Bug
>    Affects Versions: 1.5.4
>            Reporter: Emmanuel Lecharny
>            Assignee: Felix Knecht
>             Fix For: 2.0.0-RC1
> We can't save String values into the server due to the way the entries are serialized
: we are using a OutputStream.writeUTF() which is limited to 65535 chars.
> We have two options :
> - we save data splitting them in smaller chuncks
> - we save a reference to a file, considering the data as a stream.
> The second option would be way better, but is more complicated to implement. In any case,
both system change the way the serialization works.

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message