Issue #57 has been updated by J?r?me Schell.
Ok, I think I've got it ;)
The corruption appears in the method compareAttribute of the BeanComparator
class:
<pre>
} else if (o.getClass().isAssignableFrom(byte[].class)) {
dstAttrValues.add(new String((byte[]) o));
</pre>
The use of "new String((byte[]) o)" seems to kill the binary attributes.
By aggressively replacing:
<pre>
List<String> dstAttrValues = new ArrayList<String>(dstAttr.size());
</pre>
by
<pre>
List<Object> dstAttrValues = new ArrayList<Object>(dstAttr.size());
</pre>
I managed to successfully synchronize the jpegPhoto attribute \o/
I think the problem will be the same in the mergeAttributes method.
Any idea on how to fix that?
The problem with my fix is that jpegPhoto attribute is always considered as
being modified so it seems the byte[] comparison should be a special case...
----------------------------------------
Bug #57: db2ldap : Binary attribute seems to be corrupted
http://tools.lsc-project.org/issues/show/57
Author: J?r?me Schell
Status: New
Priority: Normal
Assigned to:
Category: Core
Target version:
I am in the process of syncing a MySQL database with an openldap directory.
In the MySQL table, there is a blob containing a JPEG picture of the person.
The SQL field is mapped directly to the jpegPhoto LDAP attribute like that:
<pre>
<result property="jpegPhoto" column="photo"/>
</pre>
The synchronization process is working fine except that the JPEG in the LDAP
directory seems to be invalid.
An export of the field is not a valid JPEG file and no LDAP browser displays
the picture correctly.
It seems that binary attributes should be handled differently than others. See
that "forum
post":http://www.velocityreviews.com/forums/t139104-ldap-character-encoding.html
for information about this.
The parameter "java.naming.ldap.attributes.binary" should contain a list of
LDAP attributes to be handled as binary.
--
You have received this notification because you have either subscribed to it,
or are involved in it.
To change your notification preferences, please click here:
http://tools.lsc-project.org/my/account
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://lists.lsc-project.org/pipermail/lsc-dev/attachments/20090604/48700efd/attachment.htm>