diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-08-03 21:35:37 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-08-03 21:35:37 -0400 |
| commit | 4afe4f1ace27dac50f5614580e585d9a4be2e637 (patch) | |
| tree | 216dc802f76ca5e3a9720bfb3f6259662b6516a6 /MediaBrowser.Server.Implementations | |
| parent | 06ec5ebcb99869fdbf8eec08f1dfa46742c053b4 (diff) | |
added error handling in provider supports
Diffstat (limited to 'MediaBrowser.Server.Implementations')
| -rw-r--r-- | MediaBrowser.Server.Implementations/Providers/ProviderManager.cs | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/MediaBrowser.Server.Implementations/Providers/ProviderManager.cs b/MediaBrowser.Server.Implementations/Providers/ProviderManager.cs index dc7ee32241..b7d73b515a 100644 --- a/MediaBrowser.Server.Implementations/Providers/ProviderManager.cs +++ b/MediaBrowser.Server.Implementations/Providers/ProviderManager.cs @@ -116,7 +116,7 @@ namespace MediaBrowser.Server.Implementations.Providers cancellationToken.ThrowIfCancellationRequested(); // Run the normal providers sequentially in order of priority - foreach (var provider in MetadataProviders.Where(p => p.Supports(item))) + foreach (var provider in MetadataProviders.Where(p => ProviderSupportsItem(p, item))) { cancellationToken.ThrowIfCancellationRequested(); @@ -176,6 +176,25 @@ namespace MediaBrowser.Server.Implementations.Providers } /// <summary> + /// Providers the supports item. + /// </summary> + /// <param name="provider">The provider.</param> + /// <param name="item">The item.</param> + /// <returns><c>true</c> if XXXX, <c>false</c> otherwise</returns> + private bool ProviderSupportsItem(BaseMetadataProvider provider, BaseItem item) + { + try + { + return provider.Supports(item); + } + catch (Exception ex) + { + _logger.ErrorException("{0} failed in Supports for type {1}", ex, provider.GetType().Name, item.GetType().Name); + return false; + } + } + + /// <summary> /// Fetches metadata and returns true or false indicating if any work that requires persistence was done /// </summary> /// <param name="provider">The provider.</param> |
