Fix identity-ref value parsing/serialization
[yangtools.git] / data / yang-data-util / src / main / java / org / opendaylight / yangtools / yang / data / util / AbstractStringInstanceIdentifierCodec.java
index 8ba7d0aef80b1f50a92ae5234a66eeedc6b4c924..a89ae431a80f5e54267618e893039a8df3fc4cd4 100644 (file)
@@ -79,8 +79,13 @@ public abstract class AbstractStringInstanceIdentifierCodec extends AbstractName
         return sb.toString();
     }
 
-    private static StringBuilder appendValue(final StringBuilder sb, final QNameModule currentModule,
+    private StringBuilder appendValue(final StringBuilder sb, final QNameModule currentModule,
             final Object value) {
+        if (value instanceof QName qname) {
+            // QName implies identity-ref, which can never be escaped
+            return appendQName(sb.append('\''), qname, currentModule).append('\'');
+        }
+
         final var str = String.valueOf(value);
 
         // We have two specifications here: Section 6.1.3 of both RFC6020 and RFC7950: