I am checking it...
Alex Karasulu schrieb: > thought so but we need to have someone confirm it > alex > > On 7/1/07, *Ersin Er (JIRA)* <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> > wrote: > > > [ > > https://issues.apache.org/jira/browse/DIRSERVER-916?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12509336 > ] > > Ersin Er commented on DIRSERVER-916: > ------------------------------------ > > Haven't we fixed this ? > > > SubtreeSpecificationParser and LDAP filter > > ------------------------------------------ > > > > Key: DIRSERVER-916 > > URL: > https://issues.apache.org/jira/browse/DIRSERVER-916 > > Project: Directory ApacheDS > > Issue Type: Bug > > Reporter: Stefan Seelmann > > Fix For: 1.5.1 > > > > > > I got a curious error. While playing with the new LS > subtreespecification editor and writing a subtreespecification with > an LDAP filter the SubtreeSpecificationParser *sometimes* gets killed. > > It seems like the parser is stateful. If I first write some > subtreespecifications w/o an LDAP filter the parser seems to be > stable. But when adding it just after starting the server the parser > dies with an "Read end dead". > > It was able to reproduce it with the following steps, using the trunk: > > 1.) Create an entry with the following subtreespecification > > ------------------------------------------------------------------- > > dn: cn=subentry,dc=example,dc=com > > objectClass: accessControlSubentry > > objectClass: subentry > > objectClass: top > > cn: subentry > > prescriptiveaci: { identificationTag "dummy", precedence 1, > authenticationLe > > vel none, itemOrUserFirst userFirst: { userClasses { }, > userPermissions { > > } } } > > subtreespecification: { specificationFilter (cn=test) } > > ------------------------------------------------------------------- > > 2.) Shutdown the server > > 3.) Startup the server > > 4.) Overwrite the subtreespecification value with a refinement > > ------------------------------------------------------------------- > > dn: cn=subentry,dc=example,dc=com > > changetype: modify > > replace: subtreespecification > > subtreespecification: { specificationFilter item:top } > > - > > ------------------------------------------------------------------- > > 4.) Overwrite the subtreespecification value with a filter > > ------------------------------------------------------------------- > > dn: cn=subentry,dc=example,dc=com > > changetype: modify > > replace: subtreespecification > > subtreespecification: { specificationFilter (cn=test) } > > - > > ------------------------------------------------------------------- > > The client receives the following error message: > > ------------------------------------------------------------------- > > ldap_modify: Invalid syntax (21) > > additional info: failed to modify entry > cn=subentry,dc=example,dc=com: failed to parse the new > subtreeSpecification > > ------------------------------------------------------------------- > > The server throws the following exception: > > ------------------------------------------------------------------- > > [22:46:49] ERROR > [org.apache.directory.server.core.subtree.SubentryService] - failed > to parse the new subtreeSpecification > > java.text.ParseException: Parser failure on subtree specification: > > { specificationFilter (cn=test) } > > Antlr exception trace: > > filterParser failed. Read end dead > > at > org.apache.directory.shared.ldap.subtree.SubtreeSpecificationParser.parse > (SubtreeSpecificationParser.java:133) > > at > > org.apache.directory.server.core.subtree.SubentryService.modify(SubentryService.java:1045) > > at > > org.apache.directory.server.core.interceptor.InterceptorChain$Entry$1.modify > (InterceptorChain.java:1162) > > at > > org.apache.directory.server.core.schema.SchemaService.modify(SchemaService.java:1517) > > at > > org.apache.directory.server.core.interceptor.InterceptorChain$Entry$1.modify > (InterceptorChain.java:1162) > > at > > org.apache.directory.server.core.operational.OperationalAttributeService.modify(OperationalAttributeService.java:177) > > at > > org.apache.directory.server.core.interceptor.InterceptorChain$Entry$1.modify > (InterceptorChain.java:1162) > > at > > org.apache.directory.server.core.exception.ExceptionService.modify(ExceptionService.java:291) > > at > > org.apache.directory.server.core.interceptor.InterceptorChain$Entry$1.modify > (InterceptorChain.java:1162) > > at > > org.apache.directory.server.core.authz.DefaultAuthorizationService.modify(DefaultAuthorizationService.java:241) > > at > > org.apache.directory.server.core.interceptor.InterceptorChain$Entry$1.modify > (InterceptorChain.java:1162) > > at > > org.apache.directory.server.core.authz.AuthorizationService.modify(AuthorizationService.java:510) > > at > > org.apache.directory.server.core.interceptor.InterceptorChain$Entry$1.modify > (InterceptorChain.java:1162) > > at > > org.apache.directory.server.core.referral.ReferralService.modify(ReferralService.java:746) > > at > > org.apache.directory.server.core.interceptor.InterceptorChain$Entry$1.modify > (InterceptorChain.java:1162) > > at > > org.apache.directory.server.core.authn.AuthenticationService.modify(AuthenticationService.java:351) > > at > > org.apache.directory.server.core.interceptor.InterceptorChain$Entry$1.modify > (InterceptorChain.java:1162) > > at > > org.apache.directory.server.core.normalization.NormalizationService.modify(NormalizationService.java:132) > > at > org.apache.directory.server.core.interceptor.InterceptorChain.modify > (InterceptorChain.java:761) > > at > > org.apache.directory.server.core.partition.PartitionNexusProxy.modify(PartitionNexusProxy.java:362) > > at > org.apache.directory.server.core.partition.PartitionNexusProxy.modify > (PartitionNexusProxy.java:349) > > at > > org.apache.directory.server.core.jndi.ServerDirContext.modifyAttributes(ServerDirContext.java:233) > > at > javax.naming.directory.InitialDirContext.modifyAttributes > (InitialDirContext.java:153) > > at > > org.apache.directory.server.ldap.support.ModifyHandler.messageReceived(ModifyHandler.java:80) > > at > org.apache.mina.handler.demux.DemuxingIoHandler.messageReceived > (DemuxingIoHandler.java:144) > > at > > org.apache.directory.server.ldap.LdapProtocolProvider$LdapProtocolHandler.messageReceived(LdapProtocolProvider.java:427) > > at > > org.apache.mina.common.support.AbstractIoFilterChain$TailFilter.messageReceived > (AbstractIoFilterChain.java:703) > > at > > org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:362) > > at > org.apache.mina.common.support.AbstractIoFilterChain.access$1200 > (AbstractIoFilterChain.java:54) > > at > > org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:800) > > at org.apache.mina.filter.LoggingFilter.messageReceived > (LoggingFilter.java:97) > > at > > org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:362) > > at > org.apache.mina.common.support.AbstractIoFilterChain.access$1200 > (AbstractIoFilterChain.java:54) > > at > > org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:800) > > at > org.apache.mina.filter.codec.support.SimpleProtocolDecoderOutput.flush > (SimpleProtocolDecoderOutput.java:60) > > at > > org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:190) > > at > > org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived > (AbstractIoFilterChain.java:362) > > at > > org.apache.mina.common.support.AbstractIoFilterChain.access$1200(AbstractIoFilterChain.java:54) > > at > > org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived > (AbstractIoFilterChain.java:800) > > at > > org.apache.mina.filter.executor.ExecutorFilter.processEvent(ExecutorFilter.java:243) > > at > org.apache.mina.filter.executor.ExecutorFilter$ProcessEventsRunnable.run > (ExecutorFilter.java:305) > > at > > edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665) > > at > > edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run > (ThreadPoolExecutor.java:690) > > at java.lang.Thread.run(Thread.java:595) > > ------------------------------------------------------------------- > > Now when trying to modify the subtreespecification again, the > client gets the follwoing message, but no server logs: > > ------------------------------------------------------------------- > > ldap_modify: Loop detected (54) > > additional info: failed to modify entry > cn=subentry,dc=example,dc=com: Unexpected exception > > ------------------------------------------------------------------- > > The same error occurs when trying to delete the entry > > -- > This message is automatically generated by JIRA. > - > You can reply to this email to add a comment to the issue online. > >
