src/main/java/org/wymiwyg/commons/util/URI.java
private void setUserinfo(String p_userinfo) throws MalformedURIException {
		if (p_userinfo == null) {
			m_userinfo = null;
		} else {
			if (m_host == null) {
				throw new MalformedURIException("Userinfo cannot be set when host is null!");
			}

			// userinfo can contain alphanumerics, mark characters, escaped
			// and ';',':','&','=','+','$',','
			int index = 0;
			int end = p_userinfo.length();
			char testChar = '\0';
			while (index < end) {
				testChar = p_userinfo.charAt(index);
				if (testChar == '%') {
					if (index + 2 >= end
						|| !isHex(p_userinfo.charAt(index + 1))
						|| !isHex(p_userinfo.charAt(index + 2))) {
						throw new MalformedURIException("Userinfo contains invalid escape sequence!");
					}
				} else if (
					!isUnreservedCharacter(testChar)
						&& USERINFO_CHARACTERS.indexOf(testChar) == -1) {
					throw new MalformedURIException(
						"Userinfo contains invalid character:" + testChar);
				}
				index++;
			}
		}
		m_userinfo = p_userinfo;
	}
private void setUserinfo(String p_userinfo) throws MalformedURIException {
		if (p_userinfo == null) {
			m_userinfo = null;
		} else {
			if (m_host == null) {
				throw new MalformedURIException("Userinfo cannot be set when host is null!");
			}

			// userinfo can contain alphanumerics, mark characters, escaped
			// and ';',':','&','=','+','$',','
			int index = 0;
			int end = p_userinfo.length();
			char testChar = '\0';
			while (index < end) {
				testChar = p_userinfo.charAt(index);
				if (testChar == '%') {
					if (index + 2 >= end
						|| !isHex(p_userinfo.charAt(index + 1))
						|| !isHex(p_userinfo.charAt(index + 2))) {
						throw new MalformedURIException("Userinfo contains invalid escape sequence!");
					}
				} else if (
					!isUnreservedCharacter(testChar)
						&& USERINFO_CHARACTERS.indexOf(testChar) == -1) {
					throw new MalformedURIException(
						"Userinfo contains invalid character:" + testChar);
				}
				index++;
			}
		}
		m_userinfo = p_userinfo;
	}
Set the userinfo for this URI. If a non-null value is passed in and
the host value is null, then an exception is thrown.

@param p_userinfo the userinfo for this URI

@exception MalformedURIException if p_userinfo contains invalid
characters