Merge changes I55667cbb,I94073183,Ib87cc0ec
authorTony Tkacik <ttkacik@cisco.com>
Wed, 3 Sep 2014 14:06:19 +0000 (14:06 +0000)
committerGerrit Code Review <gerrit@opendaylight.org>
Wed, 3 Sep 2014 14:06:19 +0000 (14:06 +0000)
* changes:
  BUG-1668: make sure we preserve schema key order
  Make PathArgument cache its hashCode()
  JSONNormalizedNodeStreamWriter: unify constructors

yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/codec/xml/ElementIdentityrefParser.java
yang/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/AbstractNamespaceCodec.java

index fcfaca5ce299c36c17465bebdae18b97bb365912..c6d20e30f0414ba01e103a6d643b4c90647cae41 100644 (file)
@@ -8,9 +8,7 @@
 package org.opendaylight.yangtools.yang.data.impl.codec.xml;
 
 import com.google.common.base.Preconditions;
-
 import java.net.URI;
-
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.data.util.AbstractStringIdentityrefCodec;
 import org.opendaylight.yangtools.yang.model.api.Module;
@@ -33,7 +31,7 @@ final class ElementIdentityrefParser extends AbstractStringIdentityrefCodec {
 
     @Override
     protected QName createQName(final String prefix, final String localName) {
-        final String namespace = element.lookupNamespaceURI(prefix);
+        final String namespace = element.lookupNamespaceURI(!prefix.isEmpty() ? prefix : null);
         Preconditions.checkArgument(namespace != null, "Failed to lookup prefix %s", prefix);
 
         final URI ns = URI.create(namespace);
index 620f46e20462592b1ddcfc7dcd23983629956640..bc6574720f3450879376338df696f09bbb02c750 100644 (file)
@@ -9,13 +9,10 @@ package org.opendaylight.yangtools.yang.data.util;
 
 import com.google.common.base.Preconditions;
 import com.google.common.base.Splitter;
-
 import java.net.URI;
 import java.util.Iterator;
-
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
-
 import org.opendaylight.yangtools.yang.common.QName;
 
 abstract class AbstractNamespaceCodec {
@@ -62,17 +59,22 @@ abstract class AbstractNamespaceCodec {
             return null;
         }
 
-        final String prefix = it.next().trim();
-        if (prefix.isEmpty()) {
-            return null;
-        }
 
-        // it is not "prefix:value"
-        if (!it.hasNext()) {
+        final String first = it.next().trim();
+        if (first.isEmpty()) {
             return null;
         }
 
-        final String identifier = it.next().trim();
+        final String identifier;
+        final String prefix;
+        if (it.hasNext()) {
+            // It is "prefix:value"
+            prefix = first;
+            identifier = it.next().trim();
+        } else {
+            prefix = "";
+            identifier = first;
+        }
         if (identifier.isEmpty()) {
             return null;
         }