From 8d43b49a249111dd584ef3be600f13881ad93a14 Mon Sep 17 00:00:00 2001 From: Jake Bailey <5341706+jakebailey@users.noreply.github.com> Date: Tue, 8 Jan 2019 13:14:14 -0800 Subject: [PATCH 1/2] catch exceptions when importing from search paths --- .../Engine/Impl/Interpreter/Ast/AstModuleResolution.cs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/Analysis/Engine/Impl/Interpreter/Ast/AstModuleResolution.cs b/src/Analysis/Engine/Impl/Interpreter/Ast/AstModuleResolution.cs index 4ccf04d6b..b6104c823 100644 --- a/src/Analysis/Engine/Impl/Interpreter/Ast/AstModuleResolution.cs +++ b/src/Analysis/Engine/Impl/Interpreter/Ast/AstModuleResolution.cs @@ -205,6 +205,12 @@ public async Task TryImportModuleAsync(string name, PathR } catch (OperationCanceledException) { _log?.Log(TraceLevel.Error, "ImportTimeout", name, "ImportFromSearchPaths"); return TryImportModuleResult.Timeout; + } catch (Exception ex) when ( + ex is IOException // FileNotFoundException, DirectoryNotFoundException, PathTooLongException, etc + || ex is UnauthorizedAccessException + ) { + _log?.Log(TraceLevel.Error, "ImportException", name, "ImportFromSearchPaths", ex.GetType().Name, ex.Message); + return TryImportModuleResult.ModuleNotFound; } } From 1be90144c33e1a3648481dc609535ad26c8f21ae Mon Sep 17 00:00:00 2001 From: Jake Bailey <5341706+jakebailey@users.noreply.github.com> Date: Thu, 17 Jan 2019 09:56:52 -0800 Subject: [PATCH 2/2] retry instead of not found --- src/Analysis/Engine/Impl/Interpreter/Ast/AstModuleResolution.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Analysis/Engine/Impl/Interpreter/Ast/AstModuleResolution.cs b/src/Analysis/Engine/Impl/Interpreter/Ast/AstModuleResolution.cs index b6104c823..5c5784e42 100644 --- a/src/Analysis/Engine/Impl/Interpreter/Ast/AstModuleResolution.cs +++ b/src/Analysis/Engine/Impl/Interpreter/Ast/AstModuleResolution.cs @@ -210,7 +210,7 @@ public async Task TryImportModuleAsync(string name, PathR || ex is UnauthorizedAccessException ) { _log?.Log(TraceLevel.Error, "ImportException", name, "ImportFromSearchPaths", ex.GetType().Name, ex.Message); - return TryImportModuleResult.ModuleNotFound; + return TryImportModuleResult.NeedRetry; } }