Description
In case we get an exception, the LdapResult will contain the full stack trace. This is obviously the wrong decision for results such as " Result code : (32) noSuchObject".
We should just send back the simple message :
"org.apache.ldap.common.exception.LdapNameNotFoundException: Attempt to search under non-existant entry: ou=playground,dc=apache,dc=org"
And even the class name is not very interesting.
For information, here is what we get :
message Id : 2
Search Result Done
Ldap Result
Result code : (32) noSuchObject
Matched DN : 'dc=apache,dc=org'
Error message : 'failed on search operation:
org.apache.ldap.common.message.SearchRequestImpl@4c47db:
org.apache.ldap.common.exception.LdapNameNotFoundException: Attempt to search under non-existant entry: ou=playground,dc=apache,dc=org
at org.apache.ldap.server.exception.ExceptionService.assertHasEntry(ExceptionService.java:374)
at org.apache.ldap.server.exception.ExceptionService.search(ExceptionService.java:352)
at org.apache.ldap.server.interceptor.InterceptorChain$Entry$1.search(InterceptorChain.java:1172)
at org.apache.ldap.server.authz.OldAuthorizationService.search(OldAuthorizationService.java:406)
at org.apache.ldap.server.interceptor.InterceptorChain$Entry$1.search(InterceptorChain.java:1172)
at org.apache.ldap.server.authz.AuthorizationService.search(AuthorizationService.java:797)
at org.apache.ldap.server.interceptor.InterceptorChain$Entry$1.search(InterceptorChain.java:1172)
at org.apache.ldap.server.authn.AuthenticationService.search(AuthenticationService.java:294)
at org.apache.ldap.server.interceptor.InterceptorChain$Entry$1.search(InterceptorChain.java:1172)
at org.apache.ldap.server.normalization.NormalizationService.search(NormalizationService.java:164)
at org.apache.ldap.server.interceptor.InterceptorChain.search(InterceptorChain.java:746)
at org.apache.ldap.server.partition.DirectoryPartitionNexusProxy.search(DirectoryPartitionNexusProxy.java:356)
at org.apache.ldap.server.partition.DirectoryPartitionNexusProxy.search(DirectoryPartitionNexusProxy.java:344)
at org.apache.ldap.server.jndi.ServerDirContext.search(ServerDirContext.java:580)
at org.apache.ldap.server.protocol.support.SearchHandler.messageReceived(SearchHandler.java:98)
at org.apache.mina.protocol.handler.DemuxingProtocolHandler.messageReceived(DemuxingProtocolHandler.java:94)
at org.apache.mina.protocol.AbstractProtocolFilterChain$2.messageReceived(AbstractProtocolFilterChain.java:149)
at org.apache.mina.protocol.AbstractProtocolFilterChain.callNextMessageReceived(AbstractProtocolFilterChain.java:365)
at org.apache.mina.protocol.AbstractProtocolFilterChain.access$1000(AbstractProtocolFilterChain.java:50)
at org.apache.mina.protocol.AbstractProtocolFilterChain$Entry$1.messageReceived(AbstractProtocolFilterChain.java:524)
at org.apache.mina.protocol.AbstractProtocolFilterChain$1.messageReceived(AbstractProtocolFilterChain.java:99)
at org.apache.mina.protocol.AbstractProtocolFilterChain.callNextMessageReceived(AbstractProtocolFilterChain.java:365)
at org.apache.mina.protocol.AbstractProtocolFilterChain.messageReceived(AbstractProtocolFilterChain.java:356)
at org.apache.mina.protocol.ProtocolSessionManagerFilterChain$1.messageReceived(ProtocolSessionManagerFilterChain.java:77)
at org.apache.mina.protocol.AbstractProtocolFilterChain.callNextMessageReceived(AbstractProtocolFilterChain.java:365)
at org.apache.mina.protocol.AbstractProtocolFilterChain.access$1000(AbstractProtocolFilterChain.java:50)
at org.apache.mina.protocol.AbstractProtocolFilterChain$Entry$1.messageReceived(AbstractProtocolFilterChain.java:524)
at org.apache.mina.protocol.filter.ProtocolThreadPoolFilter.processEvent(ProtocolThreadPoolFilter.java:108)
at org.apache.mina.util.BaseThreadPool$Worker.processEvents(BaseThreadPool.java:405)
at org.apache.mina.util.BaseThreadPool$Worker.run(BaseThreadPool.java:355)
'