[ 
https://issues.apache.org/jira/browse/DIRSERVER-1061?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Emmanuel Lecharny updated DIRSERVER-1061:
-----------------------------------------

         Priority: Major  (was: Minor)
    Fix Version/s: 1.5.2

Raised to major, as we are breaking the specs.

> Search fails with unrecognized attribute in boolean filters
> -----------------------------------------------------------
>
>                 Key: DIRSERVER-1061
>                 URL: https://issues.apache.org/jira/browse/DIRSERVER-1061
>             Project: Directory ApacheDS
>          Issue Type: Bug
>          Components: core
>    Affects Versions: 1.5.1, 1.0.2
>         Environment: ApacheDS 1.0.2 on Windows Server 2003 SP2 and Apache DS 
> 1.5.1 on Mac OS X 10.4.10.
>            Reporter: John Lacey
>             Fix For: 1.5.2
>
>
> If I search for "(unknown=*)" I correctly get no results. But if I search for 
> "(&(unknown=*))" I get:
> Caused by: javax.naming.NamingExc
> eption: OID for name 'unknown' was not found within the OID registry
>         at org
> .apache.directory.server.schema.registries.DefaultOidRegistry.getOid(Default
> OidRegistry.java:113)
>         at org.apache.directory.server.core.normalization.Nor
> malizingVisitor.visit(NormalizingVisitor.java:88)
>         ... 25 more
> Other variations of boolean operators also fail, such as 
> "(|(uid=*)(unknown=*))" where "(uid=*)" by itself yields results.
> According to RFC 4511 section 4.5.1, servers MUST NOT return errors in this 
> situation.
> I found similar bugs, such as DIRSERVER-645 and DIRSERVER-836, but nothing 
> covering this exact situation.
> The error is not specific to ldapsearch; I actually found the error using 
> another application, and I was simply testing with something simpler and more 
> widely available. I filed this as minor, because in most cases you can 
> obviously avoid using an invalid attribute, but it's actually worse than 
> that. The original application can't be modified, for example, and I can't 
> use Apache DS as the LDAP server with it because the exception causes the 
> LDAP autoconfiguration to fail.
> The full ldapsearch command line and output:
> $ ldapsearch -x -H ldap://localhost:10389 -D 'uid=admin,ou=system' -w **** -b 
> 'ou=system' -s sub '(&(unknown=*))' uid
> # extended LDIF
> #
> # LDAPv3
> # base <ou=system> with scope sub
> # filter: (&(unknown=*))
> # requesting: uid
> #
> # search result
> search: 2
> result: 36 Alias dereferencing problem
> text: failed on search operation: Unexpected exception.:
>     SearchRequest
>        baseDn : 'ou=system'
>         filter : '(& (unknown=*) ) '
>         scop
> e : whole subtree
>         typesOnly : false
> no limit
>         Time Limit : no
>   limit
>         Deref Aliases : never Deref Aliases
>         attributes : 'uid
> '
> :
> org.apache.directory.server.core.interceptor.InterceptorException: Unexp
> ected exception. [Root exception is java.lang.RuntimeException: OID for name
>   'unknown' was not found within the OID registry]
>         at org.apache.directory.s
> erver.core.interceptor.InterceptorChain.throwInterceptorException(Intercepto
> rChain.java:1472)
>         at org.apache.directory.server.core.interceptor.Intercept
> orChain.search(InterceptorChain.java:888)
>         at org.apache.directory.server.co
> re.partition.PartitionNexusProxy.search(PartitionNexusProxy.java:492)
>         at or
> g.apache.directory.server.core.partition.PartitionNexusProxy.search(Partitio
> nNexusProxy.java:434)
>         at org.apache.directory.server.core.jndi.ServerContex
> t.doSearchOperation(ServerContext.java:249)
>         at org.apache.directory.server.
> core.jndi.ServerDirContext.search(ServerDirContext.java:642)
>         at org.apache.
> directory.server.ldap.support.SearchHandler.messageReceived(SearchHandler.ja
> va:376)
>         at org.apache.mina.handler.demux.DemuxingIoHandler.messageReceived(
> DemuxingIoHandler.java:141)
>         at org.apache.directory.server.ldap.LdapProtoco
> lProvider$LdapProtocolHandler.messageReceived(LdapProtocolProvider.java:428)
>         at 
> org.apache.mina.common.support.AbstractIoFilterChain$TailFilter.message
> Received(AbstractIoFilterChain.java:570)
>         at org.apache.mina.common.support.
> AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:299
> )
>         at 
> org.apache.mina.common.support.AbstractIoFilterChain.access$1100(Abstr
> actIoFilterChain.java:53)
>         at org.apache.mina.common.support.AbstractIoFilte
> rChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:648)
>         at org.a
> pache.mina.filter.codec.support.SimpleProtocolDecoderOutput.flush(SimpleProt
> ocolDecoderOutput.java:58)
>         at org.apache.mina.filter.codec.ProtocolCodecFil
> ter.messageReceived(ProtocolCodecFilter.java:176)
>         at org.apache.mina.common
> .support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain
> .java:299)
>         at org.apache.mina.common.support.AbstractIoFilterChain.access$1
> 100(AbstractIoFilterChain.java:53)
>         at org.apache.mina.common.support.Abstra
> ctIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:648)
>         at 
> org.apache.mina.filter.executor.ExecutorFilter.processEvent(ExecutorFilt
> er.java:220)
>         at org.apache.mina.filter.executor.ExecutorFilter$ProcessEvent
> sRunnable.run(ExecutorFilter.java:264)
>         at java.util.concurrent.ThreadPoolEx
> ecutor$Worker.runTask(ThreadPoolExecutor.java:650)
>         at java.util.concurrent.
> ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
>         at java.lang.Thr
> ead.run(Thread.java:613)
> Caused by: java.lang.RuntimeException: OID for name
>   'unknown' was not found within the OID registry
>         at org.apache.directory.se
> rver.core.normalization.NormalizingVisitor.visit(NormalizingVisitor.java:93)
>         at 
> org.apache.directory.shared.ldap.filter.PresenceNode.accept(PresenceNod
> e.java:97)
>         at org.apache.directory.shared.ldap.filter.BranchNode.accept(Bra
> nchNode.java:408)
>         at org.apache.directory.server.core.normalization.Normali
> zationService.search(NormalizationService.java:210)
>         at org.apache.directory
> .server.core.interceptor.InterceptorChain.search(InterceptorChain.java:880)
>         ... 21 more
> Caused by: javax.naming.NamingException: OID for name 'unknown'
>   was not found within the OID registry
>         at org.apache.directory.server.schem
> a.registries.DefaultOidRegistry.getOid(DefaultOidRegistry.java:113)
>         at org.
> apache.directory.server.core.normalization.NormalizingVisitor.visit(Normaliz
> ingVisitor.java:88)
>         ... 25 more
> # numResponses: 1

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to