private static void parseInternal ( UrlParser urlParser , String url , Properties properties ) throws SQLException { try { urlParser . initialUrl = url ; int separator = url . indexOf ( "//" ) ; if ( separator == - 1 ) { throw new IllegalArgumentException ( "url parsing error : '//' is not present in the url " + url ) ; } urlParser . haMode = parseHaMode ( url , separator ) ; String urlSecondPart = url . substring ( separator + 2 ) ; int dbIndex = urlSecondPart . indexOf ( "/" ) ; int paramIndex = urlSecondPart . indexOf ( "?" ) ; String hostAddressesString ; String additionalParameters ; if ( ( dbIndex < paramIndex && dbIndex < 0 ) || ( dbIndex > paramIndex && paramIndex > - 1 ) ) { hostAddressesString = urlSecondPart . substring ( 0 , paramIndex ) ; additionalParameters = urlSecondPart . substring ( paramIndex ) ; } else if ( ( dbIndex < paramIndex && dbIndex > - 1 ) || ( dbIndex > paramIndex && paramIndex < 0 ) ) { hostAddressesString = urlSecondPart . substring ( 0 , dbIndex ) ; additionalParameters = urlSecondPart . substring ( dbIndex ) ; } else { hostAddressesString = urlSecondPart ; additionalParameters = null ; } defineUrlParserParameters ( urlParser , properties , hostAddressesString , additionalParameters ) ; setDefaultHostAddressType ( urlParser ) ; urlParser . loadMultiMasterValue ( ) ; } catch ( IllegalArgumentException i ) { throw new SQLException ( "error parsing url : " + i . getMessage ( ) , i ) ; } }
Parses the connection URL in order to set the UrlParser instance with all the information provided through the URL .