public void finish ( ) throws IOException { if ( TraceComponent . isAnyTracingEnabled ( ) && logger . isLoggable ( Level . FINE ) ) { //306998.15 logger . logp ( Level . FINE , CLASS_NAME , "finish" , "finish" ) ; } // PM18453 start WebContainerRequestState requestState = WebContainerRequestState . getInstance ( false ) ; if ( requestState != null && ( Boolean . valueOf ( ( String ) requestState . getAttribute ( "InputStreamEarlyReadCompleted" ) ) ) . booleanValue ( ) ) { if ( TraceComponent . isAnyTracingEnabled ( ) && logger . isLoggable ( Level . FINE ) ) { //306998.15 logger . logp ( Level . FINE , CLASS_NAME , "finish" , "Skip read because data has already been read and destroyed." ) ; } total = limit ; } // PM18453 End else if ( ! SRTServletResponse . isSkipInputStreamRead ( ) && length != - 1 ) { // if content length set then skip remaining bytes in message body long remaining = limit - total ; // PK79219 while ( remaining > 0 ) { long n = skip ( remaining ) ; // PM03146 if ( n == 0 ) { // begin 280584.3 6021: Cleanup of defect 280584.2 WAS.webcontainer //logger.logp(Level.SEVERE, CLASS_NAME,"finish", nls.getString("Invalid.Content.Length")); // end 280584.3 6021: Cleanup of defect 280584.2 WAS.webcontainer throw new IOException ( nls . getString ( "Invalid.Content.Length" , "Invalid content length" ) ) ; } remaining -= n ; } } }
Finishes reading the request without closing the underlying stream .