As commented above, what if this lookup fails?  It seems we'll stick a blank entry in the cache and then return it, which doesn't seem ideal.