docs: public void close() {
  		synchronized (this) {
  			if (this.closed) {
  				return;
  			}
  			this.closed = true;
  		}
  		
  		this.numRecordsInBuffer = 0;
  		this.numRecordsReturned = 0;
  		
  		// add the full segments to the empty ones
  		for (int i = this.fullSegments.size() - 1; i >= 0; i--) {
  			this.emptySegments.add(this.fullSegments.remove(i));
  		}
  		
  		// release the memory segment
  		this.memoryManager.release(this.emptySegments);
  		this.emptySegments.clear();
  		
  		if (LOG.isDebugEnabled()) {
  			LOG.debug("Block Resettable Iterator closed.");
  		}
  	}