code: protected final int shiftKeys(int pos) {
  		// Shift entries with the same hash.
  		int last, slot;
  		for (;;) {
  			pos = ((last = pos) + 1) & mask;
  			while (workbenchEntry[pos] != null) {
  				slot = hashCode(workbenchEntry[pos].ipAddress) & mask;
  				if (last <= pos ? last >= slot || slot > pos : last >= slot && slot > pos) break;
  				pos = (pos + 1) & mask;
  			}
  			if (workbenchEntry[pos] == null) break;
  			workbenchEntry[last] = workbenchEntry[pos];
  		}
  		workbenchEntry[last] = null;
  		return last;
  	}
docs: Shifts left entries with the specified hash code, starting at the specified position, and
  empties the resulting free entry.
  
  @param pos a starting position.
  @return the position cleared by the shifting process.