From 5f4ab5eba828e59fa100f746c097145ed52579a8 Mon Sep 17 00:00:00 2001 From: Karl Burtram Date: Mon, 29 May 2017 00:00:32 -0700 Subject: [PATCH] Fix nullref in object timeout --- .../ObjectExplorer/ObjectExplorerService.cs | 8 ++++++-- .../SqlContext/ObjectExplorerSettings.cs | 7 +++++-- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/Microsoft.SqlTools.ServiceLayer/ObjectExplorer/ObjectExplorerService.cs b/src/Microsoft.SqlTools.ServiceLayer/ObjectExplorer/ObjectExplorerService.cs index 7e631b8b..62b7e0ba 100644 --- a/src/Microsoft.SqlTools.ServiceLayer/ObjectExplorer/ObjectExplorerService.cs +++ b/src/Microsoft.SqlTools.ServiceLayer/ObjectExplorer/ObjectExplorerService.cs @@ -275,7 +275,9 @@ namespace Microsoft.SqlTools.ServiceLayer.ObjectExplorer CreateSessionTask = task; Task.Run(async () => { - ObjectExplorerTaskResult result = await RunTaskWithTimeout(task, settings.CreateSessionTimeout); + ObjectExplorerTaskResult result = await RunTaskWithTimeout(task, + settings?.CreateSessionTimeout ?? ObjectExplorerSettings.DefaultCreateSessionTimeout); + if (result != null && !result.IsComplete) { cancellationTokenSource.Cancel(); @@ -419,7 +421,9 @@ namespace Microsoft.SqlTools.ServiceLayer.ObjectExplorer ExpandTask = task; Task.Run(async () => { - ObjectExplorerTaskResult result = await RunTaskWithTimeout(task, settings.ExpandTimeout); + ObjectExplorerTaskResult result = await RunTaskWithTimeout(task, + settings?.ExpandTimeout ?? ObjectExplorerSettings.DefaultExpandTimeout); + if (result != null && !result.IsComplete) { cancellationTokenSource.Cancel(); diff --git a/src/Microsoft.SqlTools.ServiceLayer/SqlContext/ObjectExplorerSettings.cs b/src/Microsoft.SqlTools.ServiceLayer/SqlContext/ObjectExplorerSettings.cs index bbec0641..b22aa49b 100644 --- a/src/Microsoft.SqlTools.ServiceLayer/SqlContext/ObjectExplorerSettings.cs +++ b/src/Microsoft.SqlTools.ServiceLayer/SqlContext/ObjectExplorerSettings.cs @@ -10,10 +10,13 @@ namespace Microsoft.SqlTools.ServiceLayer.SqlContext /// public class ObjectExplorerSettings { + public static int DefaultCreateSessionTimeout = 10; + public static int DefaultExpandTimeout = 10; + public ObjectExplorerSettings() { - CreateSessionTimeout = 10; - ExpandTimeout = 10; + CreateSessionTimeout = DefaultCreateSessionTimeout; + ExpandTimeout = DefaultExpandTimeout; } ///