[ 
https://issues.apache.org/jira/browse/DIRSERVER-1104?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

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  :
http://svn.apache.org/viewvc?rev=597245&view=rev

> Mixing Attribute value types results in write failures
> ------------------------------------------------------
>
>                 Key: DIRSERVER-1104
>                 URL: https://issues.apache.org/jira/browse/DIRSERVER-1104
>             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.

Reply via email to