docs: public synchronized void put(CacheObject obj)
  	{
  		// ensure sweeping is on if we have expiring objects
  		startSweeper();
  		final Object old = map.remove(obj.getKey());
  		if (old != null)
  			tree.remove(old);
  		else
  			ensureSizeLimits();
  		obj.resetTimestamp();
  		map.put(obj.getKey(), obj);
  		tree.put(obj, obj);
  	}