Browse Source
RepositoryCache has 2 methods to remove a repository from the cache but they are never called when a repository is closed. Users of the cache were expected to call one of those 2 methods but how could they have called them at proper time without having visibility of the repository usage count. Ideally, I would have reworked the RepositoryCache to wrap any repository it opens in a class that would be responsible to unregister them from the cache when it's really closed, i.e. when usage counter reaches 0. The problem preventing the wrapping solution is the RepositoryCache.register method that allows to register an already opened repository in the cache. Such repositories cannot be wrapped because callers are still holding a reference on the unwrapped repository. Document that RepositoryCache.close method is removing the repository from the cache as well as closing it and rework RepositoryCache.unregister method to only remove the repository from the cache. Use the latter to unregister repository when Repository.doClose is getting executed. Change-Id: Ia364816e4da8d7b6cfa72f10758ca31aa8a1f9db Signed-off-by: Hugo Arès <hugo.ares@ericsson.com> Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>stable-4.4
Hugo Arès
9 years ago
committed by
Matthias Sohn
3 changed files with 49 additions and 9 deletions
Loading…
Reference in new issue