7f4fbc87562bbdb08a8f507d3ef86271a79aadef
RepositoryNotFoundException should really mean "this repository definitely doesn't exist", not "something went wrong when we tried to read this repo (maybe it doesn't exist?)". Since GitRepositoryManager could only throw RepositoryNotFoundExceptions, the easiest implementation was to wrap *all* exceptions in that class, i.e. to take the latter interpretation. We have some downstream caching code that treated RepositoryNotFoundExceptions as definite negatives, i.e. the former interpretation. This was causing poisoned caches on otherwise mostly harmless transient errors. Change GitRepositoryManager to distinguish between these two cases by using IOException for "something went wrong". This complicates the signature, but since RepositoryNotFound derives from IOException, many callers that just want to wrap-and-throw can still do so with minimal changes. Change-Id: Ib2aa2e2443cc3b530ae7fc50fe4eb20059bb16de
Description
RETIRED, Gerrit as used by OpenStack