Issue #471 has been updated by Clément OUDOT.

Hugh Kelley wrote:
> For what it's worth,  I have been using this filter with success in 2.0
> 
> <getAllFilter>(&amp;(!(isCriticalSystemObject=TRUE))(objectCategory=group)(objectClass=group)(|(sAMAccountName=Roles.*)(sAMAccountName=Elevated.*)))</getAllFilter>
> 

Strange because it does not work for me with 2.0 branch. Are you sure it works 
with 2.0 and not with the trunk?

FYI, the stacktrace:
<pre>
mai 16 20:31:52 - WARN  - EXCEPTION, please implement 
org.apache.directory.ldap.client.api.LdapConnection.exceptionCaught() for 
proper handling:
org.apache.mina.filter.codec.ProtocolEncoderException: 
java.lang.NullPointerException
        at 
org.apache.mina.filter.codec.ProtocolCodecFilter.filterWrite(ProtocolCodecFilter.java:313)
 ~[apacheds-all-1.5.7.jar:na]
        at 
org.apache.mina.core.filterchain.DefaultIoFilterChain.callPreviousFilterWrite(DefaultIoFilterChain.java:506)
 [apacheds-all-1.5.7.jar:na]
        at 
org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1400(DefaultIoFilterChain.java:46)
 [apacheds-all-1.5.7.jar:na]
        at 
org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.filterWrite(DefaultIoFilterChain.java:805)
 [apacheds-all-1.5.7.jar:na]
        at 
org.apache.mina.core.filterchain.DefaultIoFilterChain$TailFilter.filterWrite(DefaultIoFilterChain.java:731)
 [apacheds-all-1.5.7.jar:na]
        at 
org.apache.mina.core.filterchain.DefaultIoFilterChain.callPreviousFilterWrite(DefaultIoFilterChain.java:506)
 [apacheds-all-1.5.7.jar:na]
        at 
org.apache.mina.core.filterchain.DefaultIoFilterChain.fireFilterWrite(DefaultIoFilterChain.java:498)
 [apacheds-all-1.5.7.jar:na]
        at 
org.apache.mina.core.session.AbstractIoSession.write(AbstractIoSession.java:428)
 [apacheds-all-1.5.7.jar:na]
        at 
org.apache.mina.core.session.AbstractIoSession.write(AbstractIoSession.java:369)
 [apacheds-all-1.5.7.jar:na]
        at 
org.apache.directory.ldap.client.api.LdapConnection.searchAsync(LdapConnection.java:1457)
 [ldap-client-api-0.1.jar:na]
        at 
org.lsc.service.SyncReplSourceService.getNextId(SyncReplSourceService.java:250) 
[classes/:na]
        at org.lsc.SynchronizeTask.run(AbstractSynchronize.java:639) 
[classes/:na]
        at java.lang.Thread.run(Thread.java:662) [na:1.6.0_26]
Caused by: java.lang.NullPointerException: null
        at 
org.apache.directory.shared.ldap.codec.search.SubstringFilter.encode(SubstringFilter.java:306)
 ~[apacheds-all-1.5.7.jar:na]
        at 
org.apache.directory.shared.ldap.codec.search.ConnectorFilter.encode(ConnectorFilter.java:144)
 ~[apacheds-all-1.5.7.jar:na]
        at 
org.apache.directory.shared.ldap.codec.search.OrFilter.encode(OrFilter.java:121)
 ~[apacheds-all-1.5.7.jar:na]
        at 
org.apache.directory.shared.ldap.codec.search.ConnectorFilter.encode(ConnectorFilter.java:144)
 ~[apacheds-all-1.5.7.jar:na]
        at 
org.apache.directory.shared.ldap.codec.search.AndFilter.encode(AndFilter.java:120)
 ~[apacheds-all-1.5.7.jar:na]
        at 
org.apache.directory.shared.ldap.codec.search.SearchRequestCodec.encodeProtocolOp(SearchRequestCodec.java:583)
 ~[apacheds-all-1.5.7.jar:na]
        at 
org.apache.directory.shared.ldap.codec.LdapMessageCodec.encode(LdapMessageCodec.java:386)
 ~[apacheds-all-1.5.7.jar:na]
        at 
org.apache.directory.ldap.client.api.protocol.LdapProtocolEncoder.encode(LdapProtocolEncoder.java:51)
 ~[ldap-client-api-0.1.jar:na]
        at 
org.apache.mina.filter.codec.ProtocolCodecFilter.filterWrite(ProtocolCodecFilter.java:298)
 ~[apacheds-all-1.5.7.jar:na]
        ... 12 common frames omitted
mai 16 20:31:52 - WARN  - EXCEPTION, please implement 
org.apache.directory.ldap.client.api.LdapConnection.exceptionCaught() for 
proper handling:
org.apache.mina.filter.codec.ProtocolEncoderException: 
java.lang.NullPointerException
        at 
org.apache.mina.filter.codec.ProtocolCodecFilter.filterWrite(ProtocolCodecFilter.java:313)
 ~[apacheds-all-1.5.7.jar:na]
        at 
org.apache.mina.core.filterchain.DefaultIoFilterChain.callPreviousFilterWrite(DefaultIoFilterChain.java:506)
 [apacheds-all-1.5.7.jar:na]
        at 
org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1400(DefaultIoFilterChain.java:46)
 [apacheds-all-1.5.7.jar:na]
        at 
org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.filterWrite(DefaultIoFilterChain.java:805)
 [apacheds-all-1.5.7.jar:na]
        at 
org.apache.mina.core.filterchain.DefaultIoFilterChain$TailFilter.filterWrite(DefaultIoFilterChain.java:731)
 [apacheds-all-1.5.7.jar:na]
        at 
org.apache.mina.core.filterchain.DefaultIoFilterChain.callPreviousFilterWrite(DefaultIoFilterChain.java:506)
 [apacheds-all-1.5.7.jar:na]
        at 
org.apache.mina.core.filterchain.DefaultIoFilterChain.fireFilterWrite(DefaultIoFilterChain.java:498)
 [apacheds-all-1.5.7.jar:na]
        at 
org.apache.mina.core.session.AbstractIoSession.write(AbstractIoSession.java:428)
 [apacheds-all-1.5.7.jar:na]
        at 
org.apache.mina.core.session.AbstractIoSession.write(AbstractIoSession.java:369)
 [apacheds-all-1.5.7.jar:na]
        at 
org.apache.directory.ldap.client.api.LdapConnection.searchAsync(LdapConnection.java:1457)
 [ldap-client-api-0.1.jar:na]
        at 
org.lsc.service.SyncReplSourceService.getNextId(SyncReplSourceService.java:250) 
[classes/:na]
        at org.lsc.SynchronizeTask.run(AbstractSynchronize.java:639) 
[classes/:na]
        at java.lang.Thread.run(Thread.java:662) [na:1.6.0_26]
Caused by: java.lang.NullPointerException: null
        at 
org.apache.directory.shared.ldap.codec.search.SubstringFilter.encode(SubstringFilter.java:306)
 ~[apacheds-all-1.5.7.jar:na]
        at 
org.apache.directory.shared.ldap.codec.search.ConnectorFilter.encode(ConnectorFilter.java:144)
 ~[apacheds-all-1.5.7.jar:na]
        at 
org.apache.directory.shared.ldap.codec.search.OrFilter.encode(OrFilter.java:121)
 ~[apacheds-all-1.5.7.jar:na]
        at 
org.apache.directory.shared.ldap.codec.search.ConnectorFilter.encode(ConnectorFilter.java:144)
 ~[apacheds-all-1.5.7.jar:na]
        at 
org.apache.directory.shared.ldap.codec.search.AndFilter.encode(AndFilter.java:120)
 ~[apacheds-all-1.5.7.jar:na]
        at 
org.apache.directory.shared.ldap.codec.search.SearchRequestCodec.encodeProtocolOp(SearchRequestCodec.java:583)
 ~[apacheds-all-1.5.7.jar:na]
        at 
org.apache.directory.shared.ldap.codec.LdapMessageCodec.encode(LdapMessageCodec.java:386)
 ~[apacheds-all-1.5.7.jar:na]
        at 
org.apache.directory.ldap.client.api.protocol.LdapProtocolEncoder.encode(LdapProtocolEncoder.java:51)
 ~[ldap-client-api-0.1.jar:na]
        at 
org.apache.mina.filter.codec.ProtocolCodecFilter.filterWrite(ProtocolCodecFilter.java:298)
 ~[apacheds-all-1.5.7.jar:na]
        ... 12 common frames omitted
</pre>

----------------------------------------
Bug #471: substring search in <getAllFilter> is not working in v2.0
http://tools.lsc-project.org/issues/471

Author: David Coutadeur
Status: New
Priority: Normal
Assigned to: 
Category: Core
Target version: 2.0
Problem in version: 


A search like 
<getAllFilter><![CDATA[(myattribute=abc*)]]></getAllFilter>
is not properly evaluated and cause a bug in apacheds-all.jar. More precisely 
in 
org.apache.directory.shared.ldap.codec.*

Here are some elements for debuging: 
line 1217 in LdapConnection:
            ExprNode filterNode = FilterParser.parse( searchRequest.getFilter() 
);
            filter = LdapTransformer.transformFilter( filterNode );

The filterNode seems correctly evaluated, but the 
LdapTransformer.transformFilter produces a filter that does not seem correct.
Indeed, inside filter, we can see : initialSubstring: abc, but there is no 
reference to "myattribute" in it.
As a result, the
line 1457 in LdapConnection:
WriteFuture writeFuture = ldapSession.write( request );

fails with no request in the ldap.

- The transformFilter operation is in an external library: apacheds-all-1.5.7. 
Maybe an upgrade to 2.0 could solve the bug.

- This issue could be related to the same problem : 
https://issues.apache.org/jira/browse/DIRAPI-17




-- 
You have received this notification because you have either subscribed to it, 
or are involved in it.
To change your notification preferences, please click here: 
http://tools.lsc-project.org/my/account
_______________________________________________________________
Ldap Synchronization Connector (LSC) - http://lsc-project.org

lsc-dev mailing list
[email protected]
http://lists.lsc-project.org/listinfo/lsc-dev

Reply via email to