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