private void registerRepository(Key location, Repository db)
{
db.IncrementOpen();
WeakReference<Repository> newRef = new WeakReference<Repository>(db);
WeakReference<Repository> oldRef = cacheMap.put(location, newRef);
Repository oldDb = oldRef != null ? oldRef.get() : null;
if (oldDb != null)
oldDb.Dispose();
}