DiskSpaceService will not blow up if total or free space is null

pull/3113/head
Mark McDowall 11 years ago
parent 99336595b0
commit 274e2eac86

@ -69,14 +69,19 @@ namespace NzbDrone.Core.DiskSpace
try
{
var freeSpace = _diskProvider.GetAvailableSpace(path).Value;
var totalSpace = _diskProvider.GetTotalSize(path).Value;
var freeSpace = _diskProvider.GetAvailableSpace(path);
var totalSpace = _diskProvider.GetTotalSize(path);
if (!freeSpace.HasValue || !totalSpace.HasValue)
{
continue;
}
diskSpace = new DiskSpace
{
Path = path,
FreeSpace = freeSpace,
TotalSpace = totalSpace
FreeSpace = freeSpace.Value,
TotalSpace = totalSpace.Value
};
diskSpace.Label = _diskProvider.GetVolumeLabel(path);

@ -24,7 +24,15 @@ namespace NzbDrone.Mono
try
{
return GetDriveInfoLinux(path).AvailableFreeSpace;
var driveInfo = GetDriveInfoLinux(path);
if (driveInfo == null)
{
Logger.Trace("Unable to get free space for '{0}', unable to find suitable drive", path);
return null;
}
return driveInfo.AvailableFreeSpace;
}
catch (InvalidOperationException e)
{
@ -132,7 +140,7 @@ namespace NzbDrone.Mono
drives.Where(drive =>
drive.IsReady && path.StartsWith(drive.Name, StringComparison.CurrentCultureIgnoreCase))
.OrderByDescending(drive => drive.Name.Length)
.First();
.FirstOrDefault();
}
}
}

Loading…
Cancel
Save