} else { used++;
	protected Cacheable removeOne(Cacheable item) {		Cacheable old = null;		boolean removed = false;		int bucket;		do {			bucket = -1;			// decrease all reference counts by 1			for (int i = 0; i < count; i++) {				old = items[i];				if (old == null) {					bucket = i;				} else if (old.decReferenceCount() < 1 && bucket < 0) {					bucket = i;				}			}			if (bucket > -1) {				old = items[bucket];				if (old != null) {					//LOG.debug(fileName + " replacing " + old.getKey() + " for " + item.getKey());					map.remove(old.getKey());					old.sync();				}				items[bucket] = item;				map.put(item.getKey(), item);				removed = true;			}		} while (!removed);		return old;	}