directory-dev mailing list archives

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


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

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:
>             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