aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--MediaBrowser.Controller/Entities/Folder.cs21
-rw-r--r--MediaBrowser.Controller/Entities/LinkedChild.cs2
2 files changed, 20 insertions, 3 deletions
diff --git a/MediaBrowser.Controller/Entities/Folder.cs b/MediaBrowser.Controller/Entities/Folder.cs
index 7ae2304c4..522bc3a2d 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 e01d55c68..cc5f7bf38 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
/// </summary>
[IgnoreDataMember]
- public Guid ItemId { get; set; }
+ public Guid? ItemId { get; set; }
}
public enum LinkedChildType