From 3ddbf729ce979e0c106ad21383315fa21c10e23b Mon Sep 17 00:00:00 2001 From: Alan Ren Date: Tue, 28 Mar 2023 19:55:37 -0700 Subject: [PATCH] fix drop object issue and add logging (#1974) * fix drop object issue * remove content logging * remove ununsed using. --- .../Hosting/Protocol/MessageDispatcher.cs | 19 +++++++++++-------- .../ObjectManagementService.cs | 2 +- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/src/Microsoft.SqlTools.Hosting/Hosting/Protocol/MessageDispatcher.cs b/src/Microsoft.SqlTools.Hosting/Hosting/Protocol/MessageDispatcher.cs index f5231839..af4351df 100644 --- a/src/Microsoft.SqlTools.Hosting/Hosting/Protocol/MessageDispatcher.cs +++ b/src/Microsoft.SqlTools.Hosting/Hosting/Protocol/MessageDispatcher.cs @@ -159,29 +159,32 @@ namespace Microsoft.SqlTools.Hosting.Protocol } catch (Exception ex) { - string errorMessage = GetErrorMessage(ex); - Logger.Error($"{requestType.MethodName} : {errorMessage}"); - await requestContext.SendError(errorMessage); + Logger.Error($"{requestType.MethodName} : {GetErrorMessage(ex, true)}"); + await requestContext.SendError(GetErrorMessage(ex)); } }); } - private string GetErrorMessage(Exception e) + private string GetErrorMessage(Exception e, bool includeStackTrace = false) { List errors = new List(); while (e != null) { errors.Add(e.Message); + if (includeStackTrace) + { + errors.Add(e.StackTrace); + } e = e.InnerException; } - return errors.Count > 0 ? string.Join(" ---> ", errors) : string.Empty; + return errors.Count > 0 ? string.Join(includeStackTrace ? Environment.NewLine : " ---> ", errors) : string.Empty; } - public void SetEventHandler( - EventType eventType, - Func eventHandler) + public void SetEventHandler( + EventType eventType, + Func eventHandler) { this.SetEventHandler( eventType, diff --git a/src/Microsoft.SqlTools.ServiceLayer/ObjectManagement/ObjectManagementService.cs b/src/Microsoft.SqlTools.ServiceLayer/ObjectManagement/ObjectManagementService.cs index 2d8da93b..32d79bb0 100644 --- a/src/Microsoft.SqlTools.ServiceLayer/ObjectManagement/ObjectManagementService.cs +++ b/src/Microsoft.SqlTools.ServiceLayer/ObjectManagement/ObjectManagementService.cs @@ -96,7 +96,7 @@ namespace Microsoft.SqlTools.ServiceLayer.ObjectManagement } catch (FailedOperationException ex) { - if (ex.InnerException is MissingObjectException && requestParams.ThrowIfNotExist) + if (!(ex.InnerException is MissingObjectException) || (ex.InnerException is MissingObjectException && requestParams.ThrowIfNotExist)) { throw; }