code: public int readLine(Text str, int maxLineLength,
              int maxBytesToConsume)
              throws IOException
      {
          maxLineLength = Math.min(maxLineLength, MAX_ARRAY_SIZE);
          maxBytesToConsume = Math.min(maxBytesToConsume, MAX_ARRAY_SIZE);
          if (this.recordDelimiterBytes != null) {
              return readCustomLine(str, maxLineLength, maxBytesToConsume);
          }
          else {
              return readDefaultLine(str, maxLineLength, maxBytesToConsume);
          }
      }
docs: Read one line from the InputStream into the given Text.
  
  @param str the object to store the given line (without newline)
  @param maxLineLength the maximum number of bytes to store into str;
  the rest of the line is silently discarded.
  @param maxBytesToConsume the maximum number of bytes to consume
  in this call.  This is only a hint, because if the line cross
  this threshold, we allow it to happen.  It can overshoot
  potentially by as much as one buffer length.
  
  @return the number of bytes read including the (longest) newline
  found.
  
  @throws IOException if the underlying stream throws