[ https://issues.apache.org/jira/browse/DIRSERVER-2384?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17754408#comment-17754408 ]
Emmanuel Lécharny commented on DIRSERVER-2384: ---------------------------------------------- Hi Roland, sorry for the late response... This is a clear bug in the SyncReplSearchListener: {code:java} private boolean isConfigEntry( Entry entry ) { // we can do Dn.isDescendantOf but in this part of the // server the DNs are all normalized and a simple string compare should // do the trick String name = Strings.toLowerCase( entry.getDn().getName() ); if ( name.endsWith( replConsumerConfigDn ) || name.endsWith( schemaDn ) || name.endsWith( replConsumerDn ) ) { returntrue; } // do not replicate the changes made to transport config entries returnname.startsWith( "ads-transportid" ) && name.endsWith( ServerDNConstants.CONFIG_DN ); } {code} We should *not* assume that the DN is in pure ascii. The comment says it all and is wrong from the get go. Considering (rightfully) that the DN is normalized is irrelevant, bec ause normalized != pure Ascii. We *must* use the isDescendantOf ùethod. Thanks for the report ! > Capitalization issue? > --------------------- > > Key: DIRSERVER-2384 > URL: https://issues.apache.org/jira/browse/DIRSERVER-2384 > Project: Directory ApacheDS > Issue Type: Bug > Components: core > Affects Versions: 2.0.0-M24 > Reporter: Roland Szabó > Priority: Critical > > Received a stack trace of this exception: > OTHER: failed for MessageType : MODIFY_REQUEST > Message ID : 2100 > Modify Request > Object : 'cn=TURÁN Ľudovít,ou=zimbra,ou=people,dc=leier' > Modification[0] > Operation : add > Modification > employeeType: > seafileorg.apache.directory.api.ldap.model.message.ModifyRequestImpl@63837e55: > 317: > java.lang.ArrayIndexOutOfBoundsException: 317 > at > org.apache.directory.api.util.Strings.toLowerCaseAscii(Strings.java:1872) > at > org.apache.directory.server.ldap.replication.provider.SyncReplSearchListener.isConfigEntry(SyncReplSearchListener.java:547) > at > org.apache.directory.server.ldap.replication.provider.SyncReplSearchListener.entryModified(SyncReplSearchListener.java:306) > at > org.apache.directory.server.core.event.EventInterceptor.fire(EventInterceptor.java:165) > at > org.apache.directory.server.core.event.EventInterceptor.modify(EventInterceptor.java:320) > at > org.apache.directory.server.core.api.interceptor.BaseInterceptor.next(BaseInterceptor.java:506) > at > org.apache.directory.server.core.subtree.SubentryInterceptor.modify(SubentryInterceptor.java:1220) > at > org.apache.directory.server.core.api.interceptor.BaseInterceptor.next(BaseInterceptor.java:506) > at > org.apache.directory.server.core.collective.CollectiveAttributeInterceptor.modify(CollectiveAttributeInterceptor.java:165) > at > org.apache.directory.server.core.api.interceptor.BaseInterceptor.next(BaseInterceptor.java:506) > at > org.apache.directory.server.core.operational.OperationalAttributeInterceptor.modify(OperationalAttributeInterceptor.java:449) > at > org.apache.directory.server.core.api.interceptor.BaseInterceptor.next(BaseInterceptor.java:506) > at > org.apache.directory.server.core.schema.SchemaInterceptor.modify(SchemaInterceptor.java:1206) > at > org.apache.directory.server.core.api.interceptor.BaseInterceptor.next(BaseInterceptor.java:506) > at > org.apache.directory.server.core.hash.ConfigurableHashingInterceptor.modify(ConfigurableHashingInterceptor.java:185) > at > org.apache.directory.server.core.api.interceptor.BaseInterceptor.next(BaseInterceptor.java:506) > at > org.apache.directory.server.core.kerberos.KeyDerivationInterceptor.modify(KeyDerivationInterceptor.java:212) > at > org.apache.directory.server.core.api.interceptor.BaseInterceptor.next(BaseInterceptor.java:506) > at > org.apache.directory.server.core.exception.ExceptionInterceptor.modify(ExceptionInterceptor.java:252) > at > org.apache.directory.server.core.api.interceptor.BaseInterceptor.next(BaseInterceptor.java:506) > at > org.apache.directory.server.core.admin.AdministrativePointInterceptor.modify(AdministrativePointInterceptor.java:1453) > at > org.apache.directory.server.core.api.interceptor.BaseInterceptor.next(BaseInterceptor.java:506) > at > org.apache.directory.server.core.authz.DefaultAuthorizationInterceptor.modify(DefaultAuthorizationInterceptor.java:263) > at > org.apache.directory.server.core.api.interceptor.BaseInterceptor.next(BaseInterceptor.java:506) > at > org.apache.directory.server.core.authz.AciAuthorizationInterceptor.modify(AciAuthorizationInterceptor.java:814) > at > org.apache.directory.server.core.api.interceptor.BaseInterceptor.next(BaseInterceptor.java:506) > at > org.apache.directory.server.core.referral.ReferralInterceptor.modify(ReferralInterceptor.java:317) > at > org.apache.directory.server.core.api.interceptor.BaseInterceptor.next(BaseInterceptor.java:506) > at > org.apache.directory.server.core.authn.AuthenticationInterceptor.processPasswordPolicydModify(AuthenticationInterceptor.java:931) > at > org.apache.directory.server.core.authn.AuthenticationInterceptor.modify(AuthenticationInterceptor.java:890) > at > org.apache.directory.server.core.api.interceptor.BaseInterceptor.next(BaseInterceptor.java:506) > at > org.apache.directory.server.core.normalization.NormalizationInterceptor.modify(NormalizationInterceptor.java:216) > at > org.apache.directory.server.core.DefaultOperationManager.modify(DefaultOperationManager.java:886) > at > org.apache.directory.server.core.shared.DefaultCoreSession.modify(DefaultCoreSession.java:975) > at > org.apache.directory.server.core.shared.DefaultCoreSession.modify(DefaultCoreSession.java:958) > 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:243) > at > org.apache.directory.server.ldap.LdapProtocolHandler.messageReceived(LdapProtocolHandler.java:216) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain$TailFilter.messageReceived(DefaultIoFilterChain.java:858) > 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:947) > 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:476) > at > org.apache.mina.filter.executor.UnorderedThreadPoolExecutor$Worker.run(UnorderedThreadPoolExecutor.java:430) > at java.lang.Thread.run(Thread.java:748) -- This message was sent by Atlassian Jira (v8.20.10#820010) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@directory.apache.org For additional commands, e-mail: dev-h...@directory.apache.org