Do not leak Optional in QNameWithPredicateImpl.toString() 67/75767/2
authorRobert Varga <robert.varga@pantheon.tech>
Wed, 5 Sep 2018 15:19:49 +0000 (17:19 +0200)
committerRobert Varga <nite@hq.sk>
Wed, 5 Sep 2018 18:17:32 +0000 (18:17 +0000)
The toString() method blindly appends the revision, leading to
Optional[] being present in the result. Fix the method to look
at the returned version and append the query only when it is
present -- just like QName does.

Change-Id: I47dcdaa3c7ca7b3bfaf34898f76b10dfb2ddbe00
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit 1951860b7c0ae2a74735a138b3227e09fd718745)

yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/leafref/QNameWithPredicateImpl.java

index fa88e74ca7e1a62124b3a5ad8bc5441e52b940f1..d0fb0193d1400a6ec92e29e8e3fb202ca4c93a8c 100644 (file)
@@ -11,9 +11,11 @@ import com.google.common.collect.ImmutableList;
 import java.io.Serializable;
 import java.util.List;
 import java.util.Objects;
+import java.util.Optional;
 import org.opendaylight.yangtools.concepts.Immutable;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
+import org.opendaylight.yangtools.yang.common.Revision;
 
 final class QNameWithPredicateImpl implements Immutable, Serializable, QNameWithPredicate {
 
@@ -76,7 +78,10 @@ final class QNameWithPredicateImpl implements Immutable, Serializable, QNameWith
 
         if (moduleQname != null) {
             sb.append('(').append(moduleQname.getNamespace());
-            sb.append("?revision=").append(moduleQname.getRevision());
+            final Optional<Revision> rev = moduleQname.getRevision();
+            if (rev.isPresent()) {
+                sb.append("?revision=").append(rev.get());
+            }
             sb.append(')');
         }