Loading core/java/android/net/Uri.java +8 −0 Original line number Diff line number Diff line Loading @@ -714,6 +714,10 @@ public abstract class Uri implements Parcelable, Comparable<Uri> { LOOP: while (end < length) { switch (uriString.charAt(end)) { case '/': // Start of path case '\\':// Start of path // Per http://url.spec.whatwg.org/#host-state, the \ character // is treated as if it were a / character when encountered in a // host case '?': // Start of query case '#': // Start of fragment break LOOP; Loading Loading @@ -752,6 +756,10 @@ public abstract class Uri implements Parcelable, Comparable<Uri> { case '#': // Start of fragment return ""; // Empty path. case '/': // Start of path! case '\\':// Start of path! // Per http://url.spec.whatwg.org/#host-state, the \ character // is treated as if it were a / character when encountered in a // host break LOOP; } pathStart++; Loading core/tests/coretests/src/android/net/UriTest.java +6 −0 Original line number Diff line number Diff line Loading @@ -192,6 +192,12 @@ public class UriTest extends TestCase { assertEquals("a:a@example.com:a@example2.com", uri.getAuthority()); assertEquals("example2.com", uri.getHost()); assertEquals(-1, uri.getPort()); assertEquals("/path", uri.getPath()); uri = Uri.parse("http://a.foo.com\\.example.com/path"); assertEquals("a.foo.com", uri.getHost()); assertEquals(-1, uri.getPort()); assertEquals("\\.example.com/path", uri.getPath()); } @SmallTest Loading Loading
core/java/android/net/Uri.java +8 −0 Original line number Diff line number Diff line Loading @@ -714,6 +714,10 @@ public abstract class Uri implements Parcelable, Comparable<Uri> { LOOP: while (end < length) { switch (uriString.charAt(end)) { case '/': // Start of path case '\\':// Start of path // Per http://url.spec.whatwg.org/#host-state, the \ character // is treated as if it were a / character when encountered in a // host case '?': // Start of query case '#': // Start of fragment break LOOP; Loading Loading @@ -752,6 +756,10 @@ public abstract class Uri implements Parcelable, Comparable<Uri> { case '#': // Start of fragment return ""; // Empty path. case '/': // Start of path! case '\\':// Start of path! // Per http://url.spec.whatwg.org/#host-state, the \ character // is treated as if it were a / character when encountered in a // host break LOOP; } pathStart++; Loading
core/tests/coretests/src/android/net/UriTest.java +6 −0 Original line number Diff line number Diff line Loading @@ -192,6 +192,12 @@ public class UriTest extends TestCase { assertEquals("a:a@example.com:a@example2.com", uri.getAuthority()); assertEquals("example2.com", uri.getHost()); assertEquals(-1, uri.getPort()); assertEquals("/path", uri.getPath()); uri = Uri.parse("http://a.foo.com\\.example.com/path"); assertEquals("a.foo.com", uri.getHost()); assertEquals(-1, uri.getPort()); assertEquals("\\.example.com/path", uri.getPath()); } @SmallTest Loading