code: @Override
  	public void close() {
  		// make sure that we close only once
  		synchronized (this.stateLock) {
  			if (this.closed) {
  				return;
  			}
  			this.closed = true;
  		}
  		
  		LOG.debug("Closing hash table and releasing resources.");
  		
  		// release the table structure
  		releaseTable();
  		
  		// clear the memory in the partitions
  		clearPartitions();
  	}
docs: Closes the hash table. This effectively releases all internal structures and closes all
  open files and removes them. The call to this method is valid both as a cleanup after the
  complete inputs were properly processed, and as an cancellation call, which cleans up
  all resources that are currently held by the hash join. If another process still access the hash
  table after close has been called no operations will be performed.