Fix ModificationPath.toString() reference 11/73711/1
authorRobert Varga <robert.varga@pantheon.tech>
Tue, 3 Jul 2018 15:25:37 +0000 (17:25 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Tue, 3 Jul 2018 15:27:28 +0000 (17:27 +0200)
Adding ModificationPath unfortunately broke message reporting
in ModifiedNodeDoesNotExistException. Fix that by capturing
YangInstanceIdentifier and reuse it for String.format().

Change-Id: I0e35bdc1362913d6c2794b2187f8152846a913a5
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/AbstractNodeContainerModificationStrategy.java

index 5fc273e2a9ed5a8b573d580267899eeb8a2801c8..5ea52b1686cf3aca334ac8d1961125cac15ad78d 100644 (file)
@@ -13,6 +13,7 @@ import com.google.common.base.Preconditions;
 import com.google.common.base.Verify;
 import java.util.Collection;
 import java.util.Optional;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNodeContainer;
@@ -276,8 +277,9 @@ abstract class AbstractNodeContainerModificationStrategy extends SchemaAwareAppl
     protected void checkTouchApplicable(final ModificationPath path, final NodeModification modification,
             final Optional<TreeNode> current, final Version version) throws DataValidationFailedException {
         if (!modification.getOriginal().isPresent() && !current.isPresent()) {
-            throw new ModifiedNodeDoesNotExistException(path.toInstanceIdentifier(),
-                String.format("Node %s does not exist. Cannot apply modification to its children.", path));
+            final YangInstanceIdentifier id = path.toInstanceIdentifier();
+            throw new ModifiedNodeDoesNotExistException(id,
+                String.format("Node %s does not exist. Cannot apply modification to its children.", id));
         }
 
         checkConflicting(path, current.isPresent(), "Node was deleted by other transaction.");