From 88965f75e28fda4c137223476b4f0dac84967a97 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Wed, 26 Feb 2014 21:44:16 -0500 Subject: [PATCH] stop searching for dead shortcuts over and over --- MediaBrowser.Controller/Entities/Folder.cs | 21 +++++++++++++++++-- .../Entities/LinkedChild.cs | 2 +- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/MediaBrowser.Controller/Entities/Folder.cs b/MediaBrowser.Controller/Entities/Folder.cs index 7ae2304c4b..522bc3a2d7 100644 --- a/MediaBrowser.Controller/Entities/Folder.cs +++ b/MediaBrowser.Controller/Entities/Folder.cs @@ -893,9 +893,14 @@ namespace MediaBrowser.Controller.Entities BaseItem item = null; // First get using the cached Id - if (info.ItemId != Guid.Empty) + if (info.ItemId.HasValue) { - item = LibraryManager.GetItemById(info.ItemId); + if (info.ItemId.Value == Guid.Empty) + { + return null; + } + + item = LibraryManager.GetItemById(info.ItemId.Value); } // If still null, search by path @@ -908,6 +913,9 @@ namespace MediaBrowser.Controller.Entities if (item == null) { Logger.Warn("Unable to find linked item at {0}", info.Path); + + // Don't keep searching over and over + info.ItemId = Guid.Empty; } else { @@ -985,6 +993,15 @@ namespace MediaBrowser.Controller.Entities return true; } + foreach (var child in LinkedChildren) + { + // Reset the cached value + if (child.ItemId.HasValue && child.ItemId.Value == Guid.Empty) + { + child.ItemId = null; + } + } + return false; } diff --git a/MediaBrowser.Controller/Entities/LinkedChild.cs b/MediaBrowser.Controller/Entities/LinkedChild.cs index e01d55c68d..cc5f7bf38c 100644 --- a/MediaBrowser.Controller/Entities/LinkedChild.cs +++ b/MediaBrowser.Controller/Entities/LinkedChild.cs @@ -13,7 +13,7 @@ namespace MediaBrowser.Controller.Entities /// Serves as a cache /// [IgnoreDataMember] - public Guid ItemId { get; set; } + public Guid? ItemId { get; set; } } public enum LinkedChildType