code: @Override
      public int readLine(byte[] b, int off, int len) throws IOException {
          
          //Return -1 here because if we are closed or finished, we're at the end of the stream
          if(isClosed || isFinished()){
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
                  Tr.debug(tc, "Nothing to read, stream is closed : " + isClosed + ", or finished : " + isFinished());
              return -1;
          }
          
          //We want to prevent readLine calls from going async since they can be unpredictable
          this.readLineCall =  true;
          
          int readLineReturn = super.readLine(b, off, len);
          
          this.readLineCall = false;
          
          return readLineReturn;
      }
docs: /* (non-Javadoc)
  @see javax.servlet.ServletInputStream#readLine(byte[], int, int)