[ https://issues.apache.org/jira/browse/ZOOKEEPER-2496?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15490208#comment-15490208 ]
Kazuaki Banzai commented on ZOOKEEPER-2496: ------------------------------------------- In the callback of asynchronous multi, there is no way to get the path of the exception. Is it also a bug? > When inside a transaction, some exceptions do not have path information set. > ---------------------------------------------------------------------------- > > Key: ZOOKEEPER-2496 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2496 > Project: ZooKeeper > Issue Type: Bug > Affects Versions: 3.4.8, 3.5.1 > Reporter: Kazuaki Banzai > Attachments: transactionException.patch > > > If a client tries to execute some illegal operations inside a transaction, > ZooKeeper throws an exception. > Some exceptions such as NodeExistsException should have a path to indicate > where the exception occurred. > ZooKeeper clients can get the path by calling method getPath. > However, this method returns null if the exception occurs inside a > transaction. > For example, when a client calls create /a and create /a in a transaction, > ZooKeeper throws NodeExistsException but getPath returns null. > In normal operation (outside transactions), the path information is set > correctly. > The patch only shows this bug occurs with NoNode exception and NodeExists > exception, > but this bug seems to occur with any exception which needs a path information: > When an error occurred in a transaction, ZooKeeper creates an ErrorResult > instance to represent error result. > However, the ErrorResult class doesn't have a field for a path where an error > occurred(See src/java/main/org/apache/zookeeper/OpResult.java for more > details). -- This message was sent by Atlassian JIRA (v6.3.4#6332)