Make sure cache clearing works easily in all cases
parent
09a6a19257
commit
8808638ea9
|
@ -43,7 +43,7 @@ abstract class ArchiveDownloader extends FileDownloader
|
|||
$this->extract($fileName, $temporaryDir);
|
||||
} catch (\Exception $e) {
|
||||
// remove cache if the file was corrupted
|
||||
parent::clearCache($package, $path);
|
||||
parent::clearLastCacheWrite($package);
|
||||
throw $e;
|
||||
}
|
||||
|
||||
|
|
|
@ -39,6 +39,7 @@ class FileDownloader implements DownloaderInterface
|
|||
protected $filesystem;
|
||||
protected $cache;
|
||||
protected $outputProgress = true;
|
||||
private $lastCacheWrites = array();
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
|
@ -147,6 +148,7 @@ class FileDownloader implements DownloaderInterface
|
|||
}
|
||||
|
||||
if ($this->cache) {
|
||||
$this->lastCacheWrites[$package->getName()] = $cacheKey;
|
||||
$this->cache->copyFrom($cacheKey, $fileName);
|
||||
}
|
||||
} else {
|
||||
|
@ -164,7 +166,7 @@ class FileDownloader implements DownloaderInterface
|
|||
} catch (\Exception $e) {
|
||||
// clean up
|
||||
$this->filesystem->removeDirectory($path);
|
||||
$this->clearCache($package, $path, $processedUrl);
|
||||
$this->clearLastCacheWrite($package);
|
||||
throw $e;
|
||||
}
|
||||
|
||||
|
@ -181,10 +183,11 @@ class FileDownloader implements DownloaderInterface
|
|||
return $this;
|
||||
}
|
||||
|
||||
protected function clearCache(PackageInterface $package, $path, $processedUrl)
|
||||
protected function clearLastCacheWrite(PackageInterface $package)
|
||||
{
|
||||
if ($this->cache) {
|
||||
$this->cache->remove($this->getCacheKey($package, $processedUrl));
|
||||
if ($this->cache && isset($this->lastCacheWrites[$package->getName()])) {
|
||||
$this->cache->remove($this->lastCacheWrites[$package->getName()]);
|
||||
unset($this->lastCacheWrites[$package->getName()]);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue