question: private int processColon ( int length ) { if ( _hasScheme ) { if ( ! readUserPass ( length ) && _buffer . length ( ) > 0 ) { _reader . goBack ( ) ; _buffer . delete ( _buffer . length ( ) - 1 , _buffer . length ( ) ) ; int backtrackOnFail = _reader . getPosition ( ) - _buffer . length ( ) + length ; if ( ! readDomainName ( _buffer . substring ( length ) ) ) { _reader . seek ( backtrackOnFail ) ; readEnd ( ReadEndState . InvalidUrl ) ; } length = 0 ; } } else if ( readScheme ( ) && _buffer . length ( ) > 0 ) { _hasScheme = true ; length = _buffer . length ( ) ; } else if ( _buffer . length ( ) > 0 && _options . hasFlag ( UrlDetectorOptions . ALLOW_SINGLE_LEVEL_DOMAIN ) && _reader . canReadChars ( 1 ) ) { _reader . goBack ( ) ; _buffer . delete ( _buffer . length ( ) - 1 , _buffer . length ( ) ) ; readDomainName ( _buffer . toString ( ) ) ; } else { readEnd ( ReadEndState . InvalidUrl ) ; length = 0 ; } return length ; }
target:  We found a ":" and is now trying to read either scheme, username/password