Just for my own knowledge, is the second possible?  Getting a view change while still starting up the cache?  The only thing I worry about is if so then calculateRank could be called concurrently.