You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@directory.apache.org by "Peter Becker (JIRA)" <ji...@apache.org> on 2014/11/06 22:28:34 UTC

[jira] [Commented] (DIRAPI-206) BindRequest logs exception on valid call to setter

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