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>(&(!(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