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(); @@ -175,6 +175,25 @@ namespace MediaBrowser.Server.Implementations.Providers return result; } + /// + /// Providers the supports item. + /// + /// The provider. + /// The item. + /// true if XXXX, false otherwise + 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; + } + } + /// /// Fetches metadata and returns true or false indicating if any work that requires persistence was done ///