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);
	}
public synchronized void put ( CacheObject obj ) { 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 ) ; }
{@inheritDoc}<br>
If expiring of cache objects is set, and the timestamp of a
{@link CacheObject} is renewed after it has been put into the cache, a
new {@link #put(CacheObject)} is required for that object to apply the
timestamp and keep the cache in a consistent state.