String () { if (externalForm != null) { return externalForm; } // relative path - special url, encoding is not required // authority is null in case of URI if ((authority == null || (!path.isEmpty() && path.charAt(0) != '/')) && !isInLocalFileSystem()) { return toDecodedForm(); } String result = (StringUtil.isEmpty(authority) && StringUtil.isEmpty(path)) ? scheme + "://" : Urls.toUriWithoutParameters(this).toASCIIString(); if (parameters != null) { result += parameters; } externalForm = result; return result; }