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