code: public boolean readNonBlock()
      throws IOException
    {
      if (_readOffset < _readLength)
        return true;
  
      if (_readBuffer == null) {
        _readOffset = 0;
        _readLength = 0;
        return false;
      }
  
      int readLength = _source.readNonBlock(_readBuffer, 0, _readBuffer.length);
  
      _readOffset = 0;
      // Setting to 0 is needed to avoid int to long conversion errors with AIX
      if (readLength > 0) {
        _readLength = readLength;
        _position += readLength;
  
        if (_isEnableReadTime)
          _readTime = CurrentTime.currentTime();
  
        return true;
      }
      else {
        _readLength = 0;
        return false;
      }
    }
docs: Fills the buffer with a non-blocking read.