[
https://issues.apache.org/jira/browse/DIRSERVER-1104?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12544402
]
Emmanuel Lecharny commented on DIRSERVER-1104:
----------------------------------------------
I have added this byte in front of each value because I needed to know which
kind of value it was : String or byte[]. It's mandatory unless you accept to
have classCast exceptions.
Now, from the server POV, values are supposed to be H/R or not. If they are H/R
(and the schema nows about it), values are stored as Strings. If not, they are
stored as byte[]. If a value is not H/R and you pass a String, we convert the
String to a byte[] before storing it.
If you try to import a LDIF into the server, as it goes through the chain, it
should be the same.
In your sample, the seealso field contains a base64 encoded DN :
cn=Bad Eékà ,ou=people,o=sevenSeas
This is another problem which should be handled differently (seems to me that
the DN syntax checker is not strict enough ...)
No need to change all the server logic to fix such a problem. It will be
changed anyway when we will use Value instead of byte[] or Strings.
We can move back the serializers to another place, close to JDBM, sure. It has
been moved close to the place where those attributes where defined.
I would not do that right now as we will have a new sub-project (server-entry)
where we will have all those classes.
> 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.