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