src/java.base/share/classes/java/net/URI.java
Print this page
@@ -2635,10 +2635,15 @@
private static final long L_URIC_NO_SLASH
= L_UNRESERVED | L_ESCAPED | lowMask(";?:@&=+$,");
private static final long H_URIC_NO_SLASH
= H_UNRESERVED | H_ESCAPED | highMask(";?:@&=+$,");
+ // scope_id = alpha | digit | "_" | "." | ":"
+ private static final long L_SCOPE_ID
+ = L_ALPHANUM | lowMask("_.:");
+ private static final long H_SCOPE_ID
+ = H_ALPHANUM | highMask("_.:");
// -- Escaping and encoding --
private final static char[] hexDigits = {
'0', '1', '2', '3', '4', '5', '6', '7',
@@ -3224,11 +3229,11 @@
if (r > p) {
parseIPv6Reference(p, r);
if (r+1 == q) {
fail ("scope id expected");
}
- checkChars (r+1, q, L_ALPHANUM, H_ALPHANUM,
+ checkChars (r+1, q, L_SCOPE_ID, H_SCOPE_ID,
"scope id");
} else {
parseIPv6Reference(p, q);
}
host = substring(p-1, q+1);