directory-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alex Karasulu (JIRA)" <directory-...@incubator.apache.org>
Subject [jira] Resolved: (DIREVE-281) Attribute from extensibleObject cannot be used in search filter.
Date Tue, 25 Oct 2005 04:22:55 GMT
     [ http://issues.apache.org/jira/browse/DIREVE-281?page=all ]
     
Alex Karasulu resolved DIREVE-281:
----------------------------------

    Resolution: Fixed

Within the NormalizationService a tree visitor called the ValueNormalizingVisitor descends
the filter tree for a filter.  It normalized the values of the filter on search calls.  I
have made the visitor capable of pruning a filter tree for leaf nodes that have undefined
attributes hence are ignored according to RFC 2251.  

Interesting thing is this can prune away entire branches that contain bogus filter assertions
on undefined attributes leaving the filter empty.  In this case search returns an empty enumeration
bypassing the rest of the interceptor chain.

I have committed my changes and test case in revision 328253 here:

http://svn.apache.org/viewcvs.cgi?view=rev&rev=328253


> Attribute from extensibleObject cannot be used in search filter.
> ----------------------------------------------------------------
>
>          Key: DIREVE-281
>          URL: http://issues.apache.org/jira/browse/DIREVE-281
>      Project: Directory Server
>         Type: Bug
>   Components: jndi-provider
>     Reporter: Enrique Rodriguez
>     Assignee: Alex Karasulu
>      Fix For: 0.9.3

>
> The following filter fails during DirContext.search() when the attribute used is from
an extensibleObject:
> String filter = "(servicePid=org.apache.dns.factory)";
> LDIF excerpt:
> dn: ou=dns,ou=services,ou=configuration,ou=system
> objectClass: top
> objectClass: organizationalUnit
> objectClass: extensibleObject
> ou: dns
> servicePid: org.apache.dns.factory
> org.apache.ldap.server.interceptor.InterceptorException: Unexpected exception. [Root
exception is java.lang.RuntimeException: OID for name 'servicePid' was not found within the
OID registry]
> 	at org.apache.ldap.server.interceptor.InterceptorChain.throwInterceptorException(InterceptorChain.java:1368)
> 	at org.apache.ldap.server.interceptor.InterceptorChain.search(InterceptorChain.java:754)
> 	at org.apache.ldap.server.partition.DirectoryPartitionNexusProxy.search(DirectoryPartitionNexusProxy.java:371)
> 	at org.apache.ldap.server.partition.DirectoryPartitionNexusProxy.search(DirectoryPartitionNexusProxy.java:359)
> 	at org.apache.ldap.server.jndi.ServerDirContext.search(ServerDirContext.java:616)
> ...
> Caused by: java.lang.RuntimeException: OID for name 'servicePid' was not found within
the OID registry
> 	at org.apache.ldap.server.normalization.ValueNormalizingVisitor.visit(ValueNormalizingVisitor.java:71)
> 	at org.apache.ldap.common.filter.SimpleNode.accept(SimpleNode.java:168)
> 	at org.apache.ldap.common.filter.BranchNode.accept(BranchNode.java:356)
> 	at org.apache.ldap.server.normalization.NormalizationService.search(NormalizationService.java:163)
> 	at org.apache.ldap.server.interceptor.InterceptorChain.search(InterceptorChain.java:746)
> 	... 22 more

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


Mime
View raw message