From 9b6018a21e48548ffcaf99be9f6237e0a8bc592e Mon Sep 17 00:00:00 2001 From: Alan Ren Date: Thu, 2 Mar 2023 14:44:10 -0800 Subject: [PATCH] fix null reference issue (#22113) * fix null reference issue * move opendialog call out of promise. --- .../ui/objectManagementDialogBase.ts | 32 +++++++++++-------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/extensions/mssql/src/objectManagement/ui/objectManagementDialogBase.ts b/extensions/mssql/src/objectManagement/ui/objectManagementDialogBase.ts index 602efd6067..576fbca789 100644 --- a/extensions/mssql/src/objectManagement/ui/objectManagementDialogBase.ts +++ b/extensions/mssql/src/objectManagement/ui/objectManagementDialogBase.ts @@ -114,22 +114,26 @@ export abstract class ObjectManagementDialogBase { try { - await this.dialogObject.registerContent(async view => { - this._modelView = view; - this._formContainer = this.createFormContainer([]); - this._loadingComponent = view.modelBuilder.loadingComponent().withItem(this._formContainer).withProps({ - loading: true, - loadingText: LoadingDialogText, - showText: true, - CSSStyles: { - width: "100%", - height: "100%" - } - }).component(); - return view.initializeModel(this._loadingComponent); - }); + const initializeViewPromise = new Promise((async resolve => { + await this.dialogObject.registerContent(async view => { + this._modelView = view; + resolve(); + this._formContainer = this.createFormContainer([]); + this._loadingComponent = view.modelBuilder.loadingComponent().withItem(this._formContainer).withProps({ + loading: true, + loadingText: LoadingDialogText, + showText: true, + CSSStyles: { + width: "100%", + height: "100%" + } + }).component(); + await view.initializeModel(this._loadingComponent); + }); + })); azdata.window.openDialog(this.dialogObject); this._viewInfo = await this.initializeData(); + await initializeViewPromise; await this.initializeUI(); this._originalObjectInfo = deepClone(this.objectInfo); const typeDisplayName = getNodeTypeDisplayName(this.objectType);