code: private boolean fillReadBuffer() throws IOException {
  		// TODO: Add reading from error stream of external process. Otherwise the InputFormat might get deadlocked!
  		
  		// stream was completely processed
  		if(noMoreStreamInput) {
  			if(this.readBufferReadPos == this.readBufferFillPos) {
  				this.noMoreRecordBuffers = true;
  				return false;
  			} else {
  				throw new RuntimeException("External process produced incomplete record");
  			}
  		}
  		
  		// the buffer was completely filled and processed
  		if(this.readBufferReadPos == this.readBuffer.length && 
  				this.readBufferRemainSpace == 0) {
  			// reset counters and fill again
  			this.readBufferFillPos = 0;
  			this.readBufferRemainSpace = this.readBuffer.length;
  			this.readBufferReadPos = 0;
  		}
  		
  		// as long as not at least one record is complete
  		while(this.readBufferFillPos - this.readBufferReadPos < this.recordLength) {
  			// read from stdout
  			int readCnt = super.extProcOutStream.read(this.readBuffer, this.readBufferFillPos, this.readBufferRemainSpace);
  			
  			if(readCnt == -1) {
  				// the is nothing more to read
  				this.noMoreStreamInput = true;
  				return false;
  			} else {
  				// update fill position and remain cnt
  				this.readBufferFillPos += readCnt;
  				this.readBufferRemainSpace -= readCnt;
  			}
  		}
  		return true;
  	}
docs: Fills the read buffer by reading from the stdout stream of the external process.
  WARNING: We do not read from the error stream. This might cause a deadlock.
  
  @return true if new content was filled into the buffer, false otherwise.
  @throws IOException