org_eclipse_lemminx_extensions_xsd_XSDCompletionExtensionsTest_java
org.apache.xerces.util.URI
private void initializePath(String string, int n) throws MalformedURIException {
        int n2;
        if (string == null) {
            throw new MalformedURIException("Cannot initialize path from null string!");
        }
        int n3 = n;
        int n4 = string.length();
        char c = '\u0000';
        if (n3 < n4) {
            if (this.getScheme() == null || string.charAt(n3) == '/') {
                for (n2 = n; n2 < n4; ++n2) {
                    c = string.charAt(n2);
                    if (c == '%') {
                        if (n2 + 2 >= n4 || !URI.isHex(string.charAt(n2 + 1)) || !URI.isHex(string.charAt(n2 + 2))) {
                            throw new MalformedURIException("Path contains invalid escape sequence!");
                        }
                        n2 += 2;
                        continue;
                    }
                    if (URI.isPathCharacter(c)) continue;
                    if (c != '?' && c != '#') {
                        throw new MalformedURIException("Path contains invalid character: " + c);
                    }
                    break;
                }
            } else {
                while (n2 < n4 && (c = (char)string.charAt(n2)) != '?' && c != '#') {
                    if (c == '%') {
                        if (n2 + 2 >= n4 || !URI.isHex(string.charAt(n2 + 1)) || !URI.isHex(string.charAt(n2 + 2))) {
                            throw new MalformedURIException("Opaque part contains invalid escape sequence!");
                        }
                        n2 += 2;
                    } else if (!URI.isURICharacter(c)) {
                        throw new MalformedURIException("Opaque part contains invalid character: " + c);
                    }
                    ++n2;
                }
            }
        }
        this.m_path = string.substring(n3, n2);
        if (c == '?') {
            n3 = ++n2;
            while (n2 < n4 && (c = string.charAt(n2)) != '#') {
                if (c == '%') {
                    if (n2 + 2 >= n4 || !URI.isHex(string.charAt(n2 + 1)) || !URI.isHex(string.charAt(n2 + 2))) {
                        throw new MalformedURIException("Query string contains invalid escape sequence!");
                    }
                    n2 += 2;
                } else if (!URI.isURICharacter(c)) {
                    throw new MalformedURIException("Query string contains invalid character: " + c);
                }
                ++n2;
            }
            this.m_queryString = string.substring(n3, n2);
        }
        if (c == '#') {
            n3 = ++n2;
            while (n2 < n4) {
                c = string.charAt(n2);
                if (c == '%') {
                    if (n2 + 2 >= n4 || !URI.isHex(string.charAt(n2 + 1)) || !URI.isHex(string.charAt(n2 + 2))) {
                        throw new MalformedURIException("Fragment contains invalid escape sequence!");
                    }
                    n2 += 2;
                } else if (!URI.isURICharacter(c)) {
                    throw new MalformedURIException("Fragment contains invalid character: " + c);
                }
                ++n2;
            }
            this.m_fragment = string.substring(n3, n2);
        }
    }
 -> java.lang.String.length(): int -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.substring(int,int): java.lang.String -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.substring(int,int): java.lang.String
 [CALL] -> java.lang.String.length(): int [CALL] [EXIT] -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char [CALL] [EXIT] -> java.lang.String.charAt(int): char [CALL] [EXIT] -> java.lang.String.charAt(int): char [CALL] [EXIT] -> java.lang.String.charAt(int): char [CALL] [EXIT] -> java.lang.String.charAt(int): char [CALL] [EXIT] -> java.lang.String.charAt(int): char [CALL] [EXIT] -> java.lang.String.charAt(int): char [CALL] [EXIT] -> java.lang.String.charAt(int): char [CALL] [EXIT] -> java.lang.String.charAt(int): char [CALL] [EXIT] -> java.lang.String.charAt(int): char [CALL] [EXIT] -> java.lang.String.charAt(int): char [CALL] [EXIT] -> java.lang.String.charAt(int): char [CALL] [EXIT] -> java.lang.String.charAt(int): char [CALL] [EXIT] -> java.lang.String.charAt(int): char [CALL] [EXIT] -> java.lang.String.charAt(int): char [CALL] [EXIT] -> java.lang.String.charAt(int): char [CALL] [EXIT] -> java.lang.String.charAt(int): char [CALL] [EXIT] -> java.lang.String.charAt(int): char [CALL] [EXIT] -> java.lang.String.charAt(int): char [CALL] [EXIT] -> java.lang.String.substring(int,int): java.lang.String -> java.lang.String.charAt(int): char [CALL] [EXIT] -> java.lang.String.charAt(int): char [CALL] [EXIT] -> java.lang.String.charAt(int): char [CALL] [EXIT] -> java.lang.String.charAt(int): char [CALL] [EXIT] -> java.lang.String.charAt(int): char [CALL] [EXIT] -> java.lang.String.charAt(int): char [CALL] [EXIT] -> java.lang.String.charAt(int): char [CALL] [EXIT] -> java.lang.String.charAt(int): char [CALL] [EXIT] -> java.lang.String.charAt(int): char [CALL] [EXIT] -> java.lang.String.charAt(int): char [CALL] [EXIT] -> java.lang.String.charAt(int): char [CALL] [EXIT] -> java.lang.String.charAt(int): char [CALL] [EXIT] -> java.lang.String.charAt(int): char [CALL] [EXIT] -> java.lang.String.charAt(int): char [CALL] [EXIT] -> java.lang.String.charAt(int): char [CALL] [EXIT] -> java.lang.String.substring(int,int): java.lang.String [EXIT]