浏览代码

Restore offline functions

Luke Pulverenti 11 年之前
父节点
当前提交
73dcf0f2e8
共有 1 个文件被更改,包括 18 次插入5 次删除
  1. 18 5
      MediaBrowser.Controller/Entities/Folder.cs

+ 18 - 5
MediaBrowser.Controller/Entities/Folder.cs

@@ -808,9 +808,15 @@ namespace MediaBrowser.Controller.Entities
                     cancellationToken.ThrowIfCancellationRequested();
 
                     var child = currentTuple.Item1;
-
-                    //refresh it
-                    await child.RefreshMetadata(cancellationToken, forceSave: currentTuple.Item2, forceRefresh: forceRefreshMetadata, resetResolveArgs: false).ConfigureAwait(false);
+                    try
+                    {
+                        //refresh it
+                        await child.RefreshMetadata(cancellationToken, forceSave: currentTuple.Item2, forceRefresh: forceRefreshMetadata, resetResolveArgs: false).ConfigureAwait(false);
+                    }
+                    catch (IOException ex)
+                    {
+                        Logger.ErrorException("Error refreshing {0}", ex, child.Path ?? child.Name);
+                    }
 
                     // Refresh children if a folder and the item changed or recursive is set to true
                     var refreshChildren = child.IsFolder && (currentTuple.Item2 || (recursive.HasValue && recursive.Value));
@@ -845,8 +851,15 @@ namespace MediaBrowser.Controller.Entities
 
                         await ((Folder)child).ValidateChildren(innerProgress, cancellationToken, recursive, forceRefreshMetadata).ConfigureAwait(false);
 
-                        // Some folder providers are unable to refresh until children have been refreshed.
-                        await child.RefreshMetadata(cancellationToken, resetResolveArgs: false).ConfigureAwait(false);
+                        try
+                        {
+                            // Some folder providers are unable to refresh until children have been refreshed.
+                            await child.RefreshMetadata(cancellationToken, resetResolveArgs: false).ConfigureAwait(false);
+                        }
+                        catch (IOException ex)
+                        {
+                            Logger.ErrorException("Error refreshing {0}", ex, child.Path ?? child.Name);
+                        }
                     }
                     else
                     {