Skip to content

Commit 1d3f3d3

Browse files
authored
Fixing issue where GetScriptAs operations are being set to an exception state too early (#2455)
* Fixing issue where GetScriptAs operations are being set to an exception state too early * Accumulating errors in a stringbuilder and addressing comments * Avoiding building the error string multiple times
1 parent f46749a commit 1d3f3d3

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

src/Microsoft.SqlTools.SqlCore/Scripting/AsyncScriptAsScriptingOperation.cs

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,15 @@ public static async Task<string> GetScriptAsScript(ScriptingParams parameters, S
3333
private static async Task<string> ExecuteScriptAs(ScriptAsScriptingOperation scriptAsOperation)
3434
{
3535
TaskCompletionSource<string> scriptAsTask = new TaskCompletionSource<string>();
36+
StringBuilder scriptAsTaskProgressError = new StringBuilder();
3637
scriptAsOperation.CompleteNotification += (sender, args) =>
3738
{
38-
if (args.HasError)
39+
if (args.HasError) {
40+
scriptAsTaskProgressError.AppendLine(args.ErrorMessage);
41+
}
42+
if (scriptAsTaskProgressError.Length != 0)
3943
{
40-
scriptAsTask.SetException(new Exception(args.ErrorMessage));
44+
scriptAsTask.SetException(new Exception(scriptAsTaskProgressError.ToString()));
4145
}
4246
else
4347
{
@@ -50,7 +54,7 @@ private static async Task<string> ExecuteScriptAs(ScriptAsScriptingOperation scr
5054
{
5155
if (args.ErrorMessage != null)
5256
{
53-
scriptAsTask.SetException(new Exception(args.ErrorMessage));
57+
scriptAsTaskProgressError.AppendLine(args.ErrorMessage);
5458
}
5559
};
5660

0 commit comments

Comments
 (0)