directory-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Emmanuel Lecharny (JIRA)" <j...@apache.org>
Subject [jira] Commented: (DIRSERVER-1061) Search fails with unrecognized attribute in boolean filters
Date Tue, 11 Sep 2007 23:37:32 GMT

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

Emmanuel Lecharny commented on DIRSERVER-1061:
----------------------------------------------

I confirm that this is a bug. Tested on 1.5.1 server with Apache Directory Studio.

Thanks for the report John !


> 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
>            Priority: Minor
>             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.


Mime
View raw message