[ http://issues.apache.org/jira/browse/DIREVE-215?page=all ]
     
Stefan Zoerner closed DIREVE-215:
---------------------------------


With the application of the patch some time ago (thank you, Alex), the error 
message for the different actions (add, delete, ...) now reflect the correct 
operation. I have retested the behaviour. High time to close the issue.

> Wrong error messages for some operations
> ----------------------------------------
>
>          Key: DIREVE-215
>          URL: http://issues.apache.org/jira/browse/DIREVE-215
>      Project: Directory Server
>         Type: Bug
>   Components: protocol
>     Versions: 0.9.1
>     Reporter: Stefan Zoerner
>     Assignee: Alex Karasulu
>     Priority: Minor
>      Fix For: 0.9.2
>  Attachments: DeleteHandler.java, patch.txt
>
> If a client tries to remove an entry, and the deletion fails because the 
> entry is not a leaf (error code 66), the LDAP message is wrong.
> Status code and Exception type within the server are correct (as detected by 
> the corresponding test case). But the message text itself contains the words 
> "failed to add entry". This information is sent to the client, which may 
> display it, e.g.
>     * JNDI includes it during creation of appropriate Exception 
> (com.sun.jndi.ldap.LdapCtx.mapErrorCode(66, "failed to add entry ...").
>     * Command line tools like ldapmodify display it on the console.
> Example: If the following LDIF is applied to ApacheDS
> ---
> # create entry
> dn: ou=noLeaf,ou=system
> changetype: add
> ou: noLeaf
> objectclass: top
> objectclass: organizationalUnit
> # create entry below the first
> dn: ou=leaf,ou=noLeaf,ou=system
> changetype: add
> ou: leaf
> objectclass: top
> objectclass: organizationalUnit
> # delete subtree
> dn: ou=noLeaf,ou=system
> changetype: delete
> ---
> it goes
> $ ldapmodify -h magritte -p 10389 -D uid=admin,ou=system -w **** -f 
> deleteSubtree.ldif
> adding new entry ou=noLeaf,ou=system
> adding new entry ou=leaf,ou=noLeaf,ou=system
> deleting entry ou=noLeaf,ou=system
> ldap_delete: Operation not allowed on nonleaf
> ldap_delete: additional info: failed to add entry ou=noLeaf,ou=system:
> ... (very long Stack trace deleted) ...
> $
> I modified the error message within class 
> org.apache.ldap.server.protocol.DeleteHandler to "failed to delete entry ..." 
> (attached), although I would prefer a more detailed message (like "Not 
> Allowed On Non-leaf", as Sun Directory does). But this is not possible at 
> that general place without an ugly switch or so.
> The same "defect" (probably a cut/copy/paste of error message from 
> AddHandler) is present in CompareHandler, ModifyDnHandler, and ModifyHandler.
> I would also suggest not to send the complete stack trace back to the client. 
> I have removed it in the attached version of the DeleteHandler and had a 
> better command line experience with ApacheDS (the stack traces should go in a 
> server log only from my point of view). This applies to other handlers (e.g. 
> Add) as well.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to