From 00f806382d52d4526ee73cd4264c24ba5b0507a4 Mon Sep 17 00:00:00 2001 From: Matt Bierner Date: Wed, 22 Jun 2016 14:08:41 -0700 Subject: [PATCH] Fix Dispose on PackageJsonFileNode Bug PackageJsonFileNode file system watcher potentially not being disposed of properly. Fix Dispose of this object Testing Manual testing of this path with debugger to confirm this is hit --- Nodejs/Product/Nodejs/Project/PackageJsonFileNode.cs | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/Nodejs/Product/Nodejs/Project/PackageJsonFileNode.cs b/Nodejs/Product/Nodejs/Project/PackageJsonFileNode.cs index 7315dd3a7..275a2d7c8 100644 --- a/Nodejs/Product/Nodejs/Project/PackageJsonFileNode.cs +++ b/Nodejs/Product/Nodejs/Project/PackageJsonFileNode.cs @@ -14,20 +14,12 @@ // //*********************************************************// -using System; -using System.Collections.Generic; using System.IO; -using System.Linq; -using System.Text; -using System.Threading; -using System.Threading.Tasks; -using System.Web.Script.Serialization; using Microsoft.VisualStudioTools; using Microsoft.VisualStudioTools.Project; namespace Microsoft.NodejsTools.Project { - class PackageJsonFileNode : CommonNonCodeFileNode { - + sealed class PackageJsonFileNode : CommonNonCodeFileNode { private FileSystemWatcher _watcher; public PackageJsonFileNode(NodejsProjectNode root, ProjectElement e) @@ -64,6 +56,7 @@ internal void AnalyzePackageJson(Intellisense.VsProjectAnalyzer analyzer) { protected override void Dispose(bool disposing) { if (_watcher != null) { _watcher.Changed -= FileContentsChanged; + _watcher.Dispose(); } else { ProjectMgr?.UnregisterFileChangeNotification(this); }