Skip to content

Editor exception thrown from filesystem provider if source file doesn't exist #386

Open
@jimmylewis

Description

@jimmylewis

Functional impact

When editing libman.json in Visual Studio, if there is a library entry using the filesystem provider, and the file doesn't exist, it will throw an exception in the editor.

Minimal repro steps

  1. Have a project with the following libman.json:
{
  "version": "1.0",
  "defaultProvider": "filesystem",
  "libraries": [
    {
      "provider": "filesystem",
      "library": "node_modules/jquery/dist/",
      "destination": "wwwroot/lib/",
      "files": [ 
        "jquery.min.js" 
      ]
    }
  ]
}
  1. Make sure the source files (in the node_modules folder) do not exist
  2. Make an edit in the editor

Expected result

Edits can happen fine, a restore will fail with an appropriate error

Actual result

As soon as I make an edit (e.g. type any character), I get an error from VS and an entry in the ActivityLog:

System.AggregateException: One or more errors occurred. ---> Microsoft.Web.LibraryManager.Contracts.InvalidLibraryException: The "node_modules/jquery/dist/" library could not be resolved by the "filesystem" provider at Microsoft.Web.LibraryManager.Providers.FileSystem.FileSystemCatalog.d__4.MoveNext() --- End of stack trace from previous location where exception was thrown --- at Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WatsonReport.GetClrWatsonExceptionInfo(Exception exceptionObject) --- End of inner exception stack trace --- at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions) at System.Threading.Tasks.Task1.GetResultCore(Boolean waitCompletionNotification) at System.Threading.Tasks.Task1.get_Result() at Microsoft.Web.LibraryManager.Vsix.FilesCompletionProvider.d__2.MoveNext() at System.Collections.Generic.List1.InsertRange(Int32 index, IEnumerable1 collection) at Microsoft.JSON.Editor.Completion.JSONCompletionSource.<>c__DisplayClass3_2.b__0() at Microsoft.Web.Editor.Utility.GuardedOperations.InvokeExtensionPoint(Object errorSource, Action action) ---> (Inner Exception #0) Microsoft.Web.LibraryManager.Contracts.InvalidLibraryException: The "node_modules/jquery/dist/" library could not be resolved by the "filesystem" provider at Microsoft.Web.LibraryManager.Providers.FileSystem.FileSystemCatalog.d__4.MoveNext() --- End of stack trace from previous location where exception was thrown --- at Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WatsonReport.GetClrWatsonExceptionInfo(Exception exceptionObject)<---
--

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions