From 9ad17a04ffb97f89f6fbf5bc87dd068c81f57330 Mon Sep 17 00:00:00 2001 From: Qstick Date: Fri, 30 Aug 2019 23:29:04 -0400 Subject: [PATCH] Fixed: Null Ref in UpgradeSpecification --- .../Specifications/UpgradeSpecification.cs | 20 ++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/src/NzbDrone.Core/MediaFiles/MovieImport/Specifications/UpgradeSpecification.cs b/src/NzbDrone.Core/MediaFiles/MovieImport/Specifications/UpgradeSpecification.cs index 5ce483c5c..de48720e8 100644 --- a/src/NzbDrone.Core/MediaFiles/MovieImport/Specifications/UpgradeSpecification.cs +++ b/src/NzbDrone.Core/MediaFiles/MovieImport/Specifications/UpgradeSpecification.cs @@ -19,10 +19,24 @@ public UpgradeSpecification(Logger logger) public Decision IsSatisfiedBy(LocalMovie localMovie, DownloadClientItem downloadClientItem) { var qualityComparer = new QualityModelComparer(localMovie.Movie.Profile); - if (localMovie.Movie.MovieFile != null && qualityComparer.Compare(localMovie.Movie.MovieFile.Quality, localMovie.Quality) > 0) + + if (localMovie.Movie.MovieFileId > 0) { - _logger.Debug("This file isn't an upgrade for all movies. Skipping {0}", localMovie.Path); - return Decision.Reject("Not an upgrade for existing movie file(s)"); + var movieFile = localMovie.Movie.MovieFile; + + if (movieFile == null) + { + _logger.Trace("Unable to get movie file details from the DB. MovieId: {0} MovieFileId: {1}", localMovie.Movie.Id, localMovie.Movie.MovieFileId); + return Decision.Accept(); + } + + var qualityCompare = qualityComparer.Compare(localMovie.Quality.Quality, movieFile.Quality.Quality); + + if (qualityCompare < 0) + { + _logger.Debug("This file isn't a quality upgrade for movie. Skipping {0}", localMovie.Path); + return Decision.Reject("Not an upgrade for existing movie file(s)"); + } } return Decision.Accept();