From 1b1273f401e6eb1e8a6216d4d6df2c0f03970d06 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Tue, 20 Sep 2016 16:01:08 +0200 Subject: [PATCH] Perform delegate cursor enter/exit first Delegate may fail to perform the operation, which would leave our stack inconsistent, leading to confusion if the user ignores exceptions. Perform enter/exit on delegate first and only if it succeeds proceed to update our stack. Change-Id: If6ebfd9b530e9052a5dc8cab120a5d0c8317f937 Signed-off-by: Robert Varga (cherry picked from commit 10787df610669aa4bb22f7f8feae1dc1455dffb8) --- .../dom/broker/ShardedDOMDataTreeWriteTransaction.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/dom/mdsal-dom-broker/src/main/java/org/opendaylight/mdsal/dom/broker/ShardedDOMDataTreeWriteTransaction.java b/dom/mdsal-dom-broker/src/main/java/org/opendaylight/mdsal/dom/broker/ShardedDOMDataTreeWriteTransaction.java index bbe26b0549..fe938d8768 100644 --- a/dom/mdsal-dom-broker/src/main/java/org/opendaylight/mdsal/dom/broker/ShardedDOMDataTreeWriteTransaction.java +++ b/dom/mdsal-dom-broker/src/main/java/org/opendaylight/mdsal/dom/broker/ShardedDOMDataTreeWriteTransaction.java @@ -181,8 +181,8 @@ final class ShardedDOMDataTreeWriteTransaction implements DOMDataTreeCursorAware @Override public void enter(@Nonnull final PathArgument child) { checkAvailable(child); - path.push(child); delegate.enter(child); + path.push(child); } @Override @@ -201,16 +201,16 @@ final class ShardedDOMDataTreeWriteTransaction implements DOMDataTreeCursorAware @Override public void exit() { - path.pop(); delegate.exit(); + path.pop(); } @Override public void exit(final int depth) { + delegate.exit(depth); for (int i = 0; i < depth; i++) { path.pop(); } - delegate.exit(depth); } @Override -- 2.36.6