[
https://issues.apache.org/jira/browse/DIRSERVER-2026?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14223213#comment-14223213
]
Emmanuel Lecharny commented on DIRSERVER-2026:
----------------------------------------------
Ok, clear bug. We do a System.arrayCopy() on the String, regardless of the fact
that it contains UTF-8 chars. Typically, that transforms the 'ß' into 'ss', so
there is one more char, which leads to an OutOfBoundsException...
Good catch !
> Version M19 does not allow eszet (ß) in any tested field of inetOrgPerson
> -------------------------------------------------------------------------
>
> Key: DIRSERVER-2026
> URL: https://issues.apache.org/jira/browse/DIRSERVER-2026
> Project: Directory ApacheDS
> Issue Type: Bug
> Components: ldap
> Affects Versions: 2.0.0-M19
> Environment: Windows
> Reporter: Christian Koller
>
> Type: inetOrgPerson
> Character to add ß - 0x00DF in e.g. givenName or postalAddress ApacheDS
> returns an error.
> Tested systems: Directory Studio and PHP
> Error returned from: M19
> No error in: M15
> PHP error:
> Other (e.g., implementation specific) error (Error 80)
> Log from Directory Studio:
> #!ERROR [LDAP: error code 80 - OTHER: failed for MessageType : MODIFY_REQUEST
> Message ID : 14 Modify Request Object :
> 'uid=123456,dc=example,dc=com' Modification[0]
> Operation : replace Modification givenName: test ß
> testorg.apache.directory.api.ldap.model.message.ModifyRequestImpl@b71686f1:
> 35: java.lang.ArrayIndexOutOfBoundsException: 35 at
> org.apache.directory.api.ldap.model.schema.PrepareString.map(PrepareString.java:4061)
> at
> org.apache.directory.api.ldap.model.schema.PrepareString.insignifiantSpacesString(PrepareString.java:4839)
> at
> org.apache.directory.api.ldap.model.schema.PrepareString.normalize(PrepareString.java:257)
> at
> org.apache.directory.api.ldap.model.schema.normalizers.DeepTrimToLowerNormalizer.normalize(DeepTrimToLowerNormalizer.java:103)
> at
> org.apache.directory.api.ldap.model.schema.normalizers.CachingNormalizer.normalize(CachingNormalizer.java:124)
> at
> org.apache.directory.api.ldap.model.entry.AbstractValue.apply(AbstractValue.java:164)
> at
> org.apache.directory.api.ldap.model.entry.StringValue.<init>(StringValue.java:108)
> at
> org.apache.directory.api.ldap.model.entry.DefaultAttribute.<init>(DefaultAttribute.java:478)
> at
> org.apache.directory.server.core.api.entry.ServerEntryUtils.toServerModification(ServerEntryUtils.java:448)
> at
> org.apache.directory.server.core.api.entry.ServerEntryUtils.toServerModification(ServerEntryUtils.java:488)
> at
> org.apache.directory.server.core.api.interceptor.context.ModifyOperationContext.<init>(ModifyOperationContext.java:105)
> at
> org.apache.directory.server.core.shared.DefaultCoreSession.modify(DefaultCoreSession.java:971)
> at
> org.apache.directory.server.core.shared.DefaultCoreSession.modify(DefaultCoreSession.java:962)
> at
> org.apache.directory.server.ldap.handlers.request.ModifyRequestHandler.handle(ModifyRequestHandler.java:56)
> at
> org.apache.directory.server.ldap.handlers.request.ModifyRequestHandler.handle(ModifyRequestHandler.java:39)
> at
> org.apache.directory.server.ldap.handlers.LdapRequestHandler.handleMessage(LdapRequestHandler.java:207)
> at
> org.apache.directory.server.ldap.handlers.LdapRequestHandler.handleMessage(LdapRequestHandler.java:56)
> at
> org.apache.mina.handler.demux.DemuxingIoHandler.messageReceived(DemuxingIoHandler.java:221)
> at
> org.apache.directory.server.ldap.LdapProtocolHandler.messageReceived(LdapProtocolHandler.java:217)
> at
> org.apache.mina.core.filterchain.DefaultIoFilterChain$TailFilter.messageReceived(DefaultIoFilterChain.java:854)
> at
> org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:542)
> at
> org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1300(DefaultIoFilterChain.java:48)
> at
> org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:943)
> at
> org.apache.mina.core.filterchain.IoFilterEvent.fire(IoFilterEvent.java:74)
> at org.apache.mina.core.session.IoEvent.run(IoEvent.java:63) at
> org.apache.mina.filter.executor.UnorderedThreadPoolExecutor$Worker.runTask(UnorderedThreadPoolExecutor.java:475)
> at
> org.apache.mina.filter.executor.UnorderedThreadPoolExecutor$Worker.run(UnorderedThreadPoolExecutor.java:429)
> at java.lang.Thread.run(Unknown Source) ]
> dn: uid=123456,dc=example,dc=com
> changetype: modify
> replace: givenName
> givenName:: dGVzdCDDnyB0ZXN0
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)