8015243: SchemaFactory does not catch enum. value that is not in the value space of the base type, anyURI
authorjoehw
Thu, 17 Oct 2013 11:22:39 -0700
changeset 20977 0c63befdae8a
parent 20976 bb128fd25c3c
child 20978 9ced23855cf6
child 20979 b6b4537baa94
8015243: SchemaFactory does not catch enum. value that is not in the value space of the base type, anyURI Reviewed-by: lancea
jaxp/src/com/sun/org/apache/xerces/internal/util/URI.java
--- a/jaxp/src/com/sun/org/apache/xerces/internal/util/URI.java	Tue Oct 15 14:16:49 2013 +0100
+++ b/jaxp/src/com/sun/org/apache/xerces/internal/util/URI.java	Thu Oct 17 11:22:39 2013 -0700
@@ -689,9 +689,13 @@
         if (!initializeAuthority(uriSpec.substring(startPos, index))) {
           index = startPos - 2;
         }
-      }
-      else {
+      } else if (index < uriSpecLen) {
+        //Same as java.net.URI:
+        // DEVIATION: Allow empty authority prior to non-empty
+        // path, query component or fragment identifier
         m_host = "";
+      } else {
+        throw new MalformedURIException("Expected authority.");
       }
     }