directory-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Emmanuel Lecharny (JIRA)" <>
Subject [jira] Resolved: (DIRSERVER-1104) Mixing Attribute value types results in write failures
Date Wed, 21 Nov 2007 23:18:43 GMT


Emmanuel Lecharny resolved DIRSERVER-1104.

    Resolution: Fixed

There was a very stincky error in the way value removal where handled in AttributeImpl :
if one byte[] value was to be removed from an attribute's Value, then a pointer comparison
was done instead of a Arrays.equals(). Obviously, the existing value was not removed, as the
pointer was different.

In our case, we were trying to substitute a byte[] with the correct String value, after comparing
the stored byte[] with the string.getBytes( "UTF-8" ). There were _no_ chance it could happen,
leading the byte[] to stay into an attribute supposed to contain only Strings.

Fixed in bigbang  :

> Mixing Attribute value types results in write failures
> ------------------------------------------------------
>                 Key: DIRSERVER-1104
>                 URL:
>             Project: Directory ApacheDS
>          Issue Type: Bug
>          Components: core
>    Affects Versions: bigbang, 1.5.1
>            Reporter: Alex Karasulu
>            Assignee: Emmanuel Lecharny
>            Priority: Blocker
>             Fix For: bigbang
>         Attachments: error.log, offending.ldif
> This new bug is really serious and tricky. It has eluded us but comes out now thanks
to a crazy size effect it has on Windows.  
> First a characterization of the bug.  An entry (Attributes object) may be valid and still
contain an Attribute which has both byte[] and String array values.  Some may suggest that
this is invalid since attributes are, according to their syntax, either binary of human readable.
 However this is not the case.  The fact that an attributeType is human readable has no bearing
on how the user supplies the value.  Human readable data can be provided as binary information
so long as it still conforms to the syntax of the attribute.
> Here's an example entry which would cause such a failure:
>     dn: cn=person1,ou=system
>     objectClass: organizationalPerson
>     cn: person1
>     sn: sn_person1
>     seealso: cn=Good One,ou=people,o=sevenSeas
>     seealso:: Y249QmFkIEXDqWvDoCxvdT1wZW9wbGUsbz1zZXZlblNlYXM=
> This entry will cause the AttributeSerializerUtils.serialize() method to blow a ClassCastException.
 Note the log of the error can be found attached to this issue.  

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

View raw message