Matthias Beyer
b774ac0e67
This patch fixes a bug we did not even hit (yet). It is: When deleting an Entry from the store, this could potentially leave artifacts in the cache. Szenario: An Entry, which was loaded (via `Store::get()` for example), gets `Store::delete()`ed twice. The first call would work as expected, but leave the Entry in the Store cache. The second call would then fail, as the Entry is already removed on the FS, but still in the cache. This would fail - which is the right thing to do here - but with the wrong error (with a FileError rather than a FileNotFound error). This patch fixes this. First of all, the appropriate `PathBuf` object is calculated in all cases, as this object is needed to check whether the file is actually there (which could be the case if the Entry is in the cache and if it is not). If the entry is in the cache and is borrowed: error. If not, remove the entry from the cache. Afterwards the file is deleted on disk. If the entry is not in the cache, but the file exists, the file is removed. If the file does not exist: error. Signed-off-by: Matthias Beyer <mail@beyermatthias.de> |
||
---|---|---|
.. | ||
libimagerror | ||
libimagrt | ||
libimagstore |