[ 
https://issues.apache.org/jira/browse/ZOOKEEPER-3289?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16777548#comment-16777548
 ] 

TisonKun commented on ZOOKEEPER-3289:
-------------------------------------

hmmm...I don't think so. Let me take a snippet from 
{{DataTree#deleteNode(...)}}.


{code:java}
        DataNode parent = nodes.get(parentName);
        if (parent == null) {
            throw new KeeperException.NoNodeException();
        }
//...
        DataNode node = nodes.get(path);
        if (node == null) {
            throw new KeeperException.NoNodeException();
        }
{code}

at this point we throw {{KeeperException.NoNodeException}} without path 
information. Curator simply re-throws the exception.

Could we, as an improvement, throw {{new 
KeeperException.NoNodeException(parentName)}} and {{new 
KeeperException.NoNodeException(path)}} here?

> Throw KeeperException with path in DataTree operations
> ------------------------------------------------------
>
>                 Key: ZOOKEEPER-3289
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-3289
>             Project: ZooKeeper
>          Issue Type: Improvement
>          Components: server
>    Affects Versions: 3.5.4, 3.4.13
>            Reporter: TisonKun
>            Priority: Major
>             Fix For: 3.5.5, 3.4.14
>
>
> Currently, if ZooKeeper delete a znode that does not exist. It throws a 
> {{KeeperException.NoNodeException}} without path message. It causes 
> difficulty when user debug with ZooKeeper. For example,
> Assume we try to do a transaction(with Curator encapsulation)
> {code:java}
> client.inTransaction()
>    .check().forPath(path1).and()
>    .delete().forPath(path2).and()
>    .commit()
> {code}
> if the statement throw an exception {{KeeperException.NoNodeException}} 
> without path information, we can hardly know that it failed at {{check}} or 
> {{delete}}.
> Thus I propose throws KeeperException with path in DataTree operations. We 
> can achieve this without burden.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to