directory-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Enrique Rodriguez (JIRA)" <directory-...@incubator.apache.org>
Subject [jira] Commented: (DIREVE-282) Attribute names with periods cannot be used in a search filter.
Date Sun, 23 Oct 2005 17:15:03 GMT
    [ http://issues.apache.org/jira/browse/DIREVE-282?page=comments#action_12332900 ] 

Enrique Rodriguez commented on DIREVE-282:
------------------------------------------

I'm fine not using periods as X.500 and Java convention are to use "camel notation."

Perhaps the fix is to make the exception more friendly by pointing out the Attribute Type
rule.  The low-level antlr exception should be converted to a higher-level NamingException,
anyway.


> Attribute names with periods cannot be used in a search filter.
> ---------------------------------------------------------------
>
>          Key: DIREVE-282
>          URL: http://issues.apache.org/jira/browse/DIREVE-282
>      Project: Directory Server
>         Type: Bug
>   Components: jndi-provider
>     Reporter: Enrique Rodriguez
>     Assignee: Alex Karasulu

>
> The following filter fails in a DirContext.search(), but it works fine in the JDK (test
cases are below):
> String filter = "(service.Pid=org.apache.dns.factory)";
> javax.naming.directory.InvalidSearchFilterException: Encountered parse exception while
parsing the filter: '(service.Pid=org.apache.dns.factory)' [Root exception is java.text.ParseException:
Parser failure on filter:
> 	(service.Pid=org.apache.dns.factory)
> Antlr exception trace:
> unexpected char: '.']
> 	at org.apache.ldap.server.jndi.ServerDirContext.search(ServerDirContext.java:598)
> 	at org.apache.ldap.server.jndi.ServerDirContext.search(ServerDirContext.java:559)
> ...
> Caused by: java.text.ParseException: Parser failure on filter:
> 	(service.Pid=org.apache.dns.factory)
> Antlr exception trace:
> unexpected char: '.'
> 	at org.apache.ldap.common.filter.FilterParserImpl.parse(FilterParserImpl.java:128)
> 	at org.apache.ldap.server.jndi.ServerDirContext.search(ServerDirContext.java:594)
> 	... 17 more
>     // works fine
>     public void testLdapNameJdk() throws Exception
>     {
>         new javax.naming.ldap.LdapName( "asdf.asdf=asdf" );
>     }
>     // Parser failure on name:  asdf.asdf=asdf
>     public void testLdapNameApacheDs() throws Exception
>     {
>         new org.apache.ldap.common.name.LdapName( "asdf.asdf=asdf" );
>     }
> org.apache.ldap.common.exception.LdapInvalidNameException: Parser failure on name:
> 	asdf.asdf=asdf
> Antlr exception trace:
> line 1:5: unexpected char: '.'
> 	at org.apache.ldap.common.name.antlrTypeLexer.nextToken(antlrTypeLexer.java:154)
> 	at antlr.TokenStreamSelector.nextToken(TokenStreamSelector.java:64)
> 	at antlr.TokenBuffer.fill(TokenBuffer.java:69)
> 	at antlr.TokenBuffer.LA(TokenBuffer.java:80)
> 	at antlr.LLkParser.LA(LLkParser.java:52)
> 	at antlr.Parser.match(Parser.java:212)
> 	at org.apache.ldap.common.name.antlrNameParser.attributeTypeAndValue(antlrNameParser.java:185)
> 	at org.apache.ldap.common.name.antlrNameParser.nameComponent(antlrNameParser.java:120)
> 	at org.apache.ldap.common.name.antlrNameParser.name(antlrNameParser.java:69)
> 	at org.apache.ldap.common.name.DnParser.parse(DnParser.java:187)
> 	at org.apache.ldap.common.name.LdapName.<init>(LdapName.java:93)
> ...

-- 
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