diff --git a/MediaBrowser.Common.Implementations/Updates/InstallationManager.cs b/MediaBrowser.Common.Implementations/Updates/InstallationManager.cs
index 0142753314..6d68b968be 100644
--- a/MediaBrowser.Common.Implementations/Updates/InstallationManager.cs
+++ b/MediaBrowser.Common.Implementations/Updates/InstallationManager.cs
@@ -194,37 +194,36 @@ namespace MediaBrowser.Common.Implementations.Updates
/// Task{List{PackageInfo}}.
public async Task> GetAvailablePackagesWithoutRegistrationInfo(CancellationToken cancellationToken)
{
- using (var stream = await GetCachedPackages(cancellationToken).ConfigureAwait(false))
+ try
{
- var packages = _jsonSerializer.DeserializeFromStream>(stream).ToList();
-
- if ((DateTime.UtcNow - _lastPackageUpdateTime) > GetCacheLength())
+ using (var stream = _fileSystem.OpenRead(PackageCachePath))
{
- UpdateCachedPackages(CancellationToken.None, false);
- }
-
- return packages;
- }
- }
+ var packages = _jsonSerializer.DeserializeFromStream>(stream).ToList();
- private string PackageCachePath
- {
- get { return Path.Combine(_appPaths.CachePath, "serverpackages.json"); }
- }
+ if ((DateTime.UtcNow - _lastPackageUpdateTime) > GetCacheLength())
+ {
+ UpdateCachedPackages(CancellationToken.None, false);
+ }
- private async Task GetCachedPackages(CancellationToken cancellationToken)
- {
- try
- {
- return _fileSystem.OpenRead(PackageCachePath);
+ return packages;
+ }
}
catch (Exception)
{
}
+ _lastPackageUpdateTime = DateTime.MinValue;
await UpdateCachedPackages(cancellationToken, true).ConfigureAwait(false);
- return _fileSystem.OpenRead(PackageCachePath);
+ using (var stream = _fileSystem.OpenRead(PackageCachePath))
+ {
+ return _jsonSerializer.DeserializeFromStream>(stream).ToList();
+ }
+ }
+
+ private string PackageCachePath
+ {
+ get { return Path.Combine(_appPaths.CachePath, "serverpackages.json"); }
}
private readonly SemaphoreSlim _updateSemaphore = new SemaphoreSlim(1, 1);