[
https://issues.apache.org/jira/browse/DIRAPI-206?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14200968#comment-14200968
]
Peter Becker commented on DIRAPI-206:
-------------------------------------
The solution still breaks the rule of using exceptions only for exceptional
cases. The performance overhead doesn't matter much here since the LDAP part
will be much more expensive, but I still don't think it's a good idea. And
having a stack trace in any log for me is a massive warning sign, it should
happen only if something went wrong.
As a developer I constantly run code with debug logging on across the board,
the new solution will still force me to tweak my logging configuration. Worse:
every new person to this will first have to do research as to why they see the
exception, to then realize it's not their fault.
Also: if I would be in a mixed scenario where I would talk to Active Directory
and other LDAPs (which I might be in the future), then there is no logging
configuration that is correct: either I get stack traces that shouldn't be
there, or I might miss a problem.
Switching to debug reduces the pain, but it doesn't really solve the real
problem.
> BindRequest logs exception on valid call to setter
> --------------------------------------------------
>
> Key: DIRAPI-206
> URL: https://issues.apache.org/jira/browse/DIRAPI-206
> Project: Directory Client API
> Issue Type: Bug
> Affects Versions: 1.0.0-M24
> Reporter: Peter Becker
> Assignee: Kiran Ayyagari
> Fix For: 1.0.0-M25
>
>
> We are using DIRAPI to connect to our corporate ActiveDirectory and it seems
> impossible to do so without getting an exception logged in our application
> log, even on successful operations. This is a concern since the exception
> creates noise potentially hiding real issues.
> The problem is described in
> http://t211471.apache-directory-api.apachetalks.us/binding-and-active-directory-t211471.html
> but the resolution is not sufficient for our purposes.
> The issue is caused by this bit of code in BindRequestImpl:
> {code}
> public BindRequest setName( String name )
> {
> this.name = name;
> try
> {
> this.dn = new Dn( name );
> }
> catch ( LdapInvalidDnException e )
> {
> // This might still be a valid DN (Windows AD binding for
> instance)
> LOG.info( "Unable to convert the name to a DN.", e );
> this.dn = null;
> }
> return this;
> }
> {code}
> The comment even indicates that the call might be perfectly valid. I think it
> would be much better to either drop the exception completely, or -- if it is
> required in other scenarios -- to skip the attempt of creating the DN field
> completely if some flag is set (extra parameter / field / subclass). Since
> the name field is private it can not be done from the client side.
> This is a potential showstopper for us -- we do not like telling our support
> staff to ignore exceptions in logs.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)