diff --git a/MediaBrowser.Controller/IO/FileData.cs b/MediaBrowser.Controller/IO/FileData.cs
index e2bdb28e34..ed5acbb3dd 100644
--- a/MediaBrowser.Controller/IO/FileData.cs
+++ b/MediaBrowser.Controller/IO/FileData.cs
@@ -26,12 +26,12 @@ namespace MediaBrowser.Controller.IO
/// if set to true [resolve shortcuts].
/// Dictionary{System.StringFileSystemInfo}.
/// path
- public static Dictionary GetFilteredFileSystemEntries(IDirectoryService directoryService,
- string path,
- IFileSystem fileSystem,
- ILogger logger,
- ItemResolveArgs args,
- int flattenFolderDepth = 0,
+ public static Dictionary GetFilteredFileSystemEntries(IDirectoryService directoryService,
+ string path,
+ IFileSystem fileSystem,
+ ILogger logger,
+ ItemResolveArgs args,
+ int flattenFolderDepth = 0,
bool resolveShortcuts = true)
{
if (string.IsNullOrEmpty(path))
@@ -60,22 +60,29 @@ namespace MediaBrowser.Controller.IO
if (resolveShortcuts && fileSystem.IsShortcut(fullName))
{
- var newPath = fileSystem.ResolveShortcut(fullName);
-
- if (string.IsNullOrWhiteSpace(newPath))
+ try
{
- //invalid shortcut - could be old or target could just be unavailable
- logger.Warn("Encountered invalid shortcut: " + fullName);
- continue;
+ var newPath = fileSystem.ResolveShortcut(fullName);
+
+ if (string.IsNullOrWhiteSpace(newPath))
+ {
+ //invalid shortcut - could be old or target could just be unavailable
+ logger.Warn("Encountered invalid shortcut: " + fullName);
+ continue;
+ }
+
+ // Don't check if it exists here because that could return false for network shares.
+ var data = fileSystem.GetDirectoryInfo(newPath);
+
+ // add to our physical locations
+ args.AddAdditionalLocation(newPath);
+
+ dict[newPath] = data;
+ }
+ catch (Exception ex)
+ {
+ logger.ErrorException("Error resolving shortcut from {0}", ex, fullName);
}
-
- // Don't check if it exists here because that could return false for network shares.
- var data = fileSystem.GetDirectoryInfo(newPath);
-
- // add to our physical locations
- args.AddAdditionalLocation(newPath);
-
- dict[newPath] = data;
}
else if (flattenFolderDepth > 0 && isDirectory)
{
diff --git a/MediaBrowser.Providers/TV/TvdbSeriesProvider.cs b/MediaBrowser.Providers/TV/TvdbSeriesProvider.cs
index 16c0098127..5df5151caf 100644
--- a/MediaBrowser.Providers/TV/TvdbSeriesProvider.cs
+++ b/MediaBrowser.Providers/TV/TvdbSeriesProvider.cs
@@ -101,7 +101,7 @@ namespace MediaBrowser.Providers.TV
result.Item = new Series();
result.HasMetadata = true;
- FetchSeriesData(result, itemId.ProviderIds, cancellationToken);
+ FetchSeriesData(result, itemId.MetadataLanguage, itemId.ProviderIds, cancellationToken);
await FindAnimeSeriesIndex(result.Item, itemId).ConfigureAwait(false);
}
@@ -140,10 +140,11 @@ namespace MediaBrowser.Providers.TV
/// Fetches the series data.
///
/// The result.
+ /// The metadata language.
/// The series provider ids.
/// The cancellation token.
/// Task{System.Boolean}.
- private void FetchSeriesData(MetadataResult result, Dictionary seriesProviderIds, CancellationToken cancellationToken)
+ private void FetchSeriesData(MetadataResult result, string metadataLanguage, Dictionary seriesProviderIds, CancellationToken cancellationToken)
{
var series = result.Item;
@@ -160,7 +161,7 @@ namespace MediaBrowser.Providers.TV
var seriesDataPath = GetSeriesDataPath(_config.ApplicationPaths, seriesProviderIds);
- var seriesXmlFilename = series.GetPreferredMetadataLanguage().ToLower() + ".xml";
+ var seriesXmlFilename = metadataLanguage.ToLower() + ".xml";
var seriesXmlPath = Path.Combine(seriesDataPath, seriesXmlFilename);
var actorsXmlPath = Path.Combine(seriesDataPath, "actors.xml");