private boolean parseRequest ( ) throws IOException { try { ReadStream is = connTcp ( ) . readStream ( ) ; if ( ! readRequest ( is ) ) { clearRequest ( ) ; return false ; } _sequence = connHttp ( ) . nextSequenceRead ( ) ; if ( log . isLoggable ( Level . FINE ) ) { log . fine ( _method + " " + new String ( _uri , 0 , _uriLength ) + " " + _protocol + " (" + dbgId ( ) + ")" ) ; log . fine ( "Remote-IP: " + connTcp ( ) . addressRemote ( ) + ":" + connTcp ( ) . portRemote ( ) + " (" + dbgId ( ) + ")" ) ; } parseHeaders ( is ) ; return true ; } catch ( ClientDisconnectException e ) { throw e ; } catch ( SocketTimeoutException e ) { log . log ( Level . FINER , e . toString ( ) , e ) ; return false ; } catch ( ArrayIndexOutOfBoundsException e ) { log . log ( Level . FINEST , e . toString ( ) , e ) ; throw new BadRequestException ( L . l ( "Invalid request: URL or headers are too long" ) , e ) ; } catch ( Throwable e ) { log . log ( Level . FINEST , e . toString ( ) , e ) ; throw new BadRequestException ( String . valueOf ( e ) , e ) ; } }
Parses a http request .