diff --git a/extensions/mssql/src/contextProvider.ts b/extensions/mssql/src/contextProvider.ts index 17677d3fb6..3faffbe832 100644 --- a/extensions/mssql/src/contextProvider.ts +++ b/extensions/mssql/src/contextProvider.ts @@ -37,7 +37,7 @@ export default class ContextProvider { public onDashboardOpen(e: sqlops.DashboardDocument): void { let iscloud: boolean; let edition: number; - if (e.profile.providerName.toLowerCase() === 'mssql' && !types.isUndefinedOrNull(e.serverInfo.engineEditionId)) { + if (e.profile.providerName.toLowerCase() === 'mssql' && !types.isUndefinedOrNull(e.serverInfo) && !types.isUndefinedOrNull(e.serverInfo.engineEditionId)) { if (isCloudEditions.some(i => i === e.serverInfo.engineEditionId)) { iscloud = true; } else { diff --git a/src/sql/parts/dashboard/common/dashboardHelper.ts b/src/sql/parts/dashboard/common/dashboardHelper.ts index fe18a89078..62cd1e1720 100644 --- a/src/sql/parts/dashboard/common/dashboardHelper.ts +++ b/src/sql/parts/dashboard/common/dashboardHelper.ts @@ -136,13 +136,17 @@ export function addProvider(config: WidgetConfig[], collection: DashboardServiceInterface): Array { let connectionInfo: ConnectionManagementInfo = collection.connectionManagementService.connectionInfo; - let edition = connectionInfo.serverInfo.engineEditionId; - return config.map((item) => { - if (item.edition === undefined) { - item.edition = edition; - } - return item; - }); + if (connectionInfo.serverInfo) { + let edition = connectionInfo.serverInfo.engineEditionId; + return config.map((item) => { + if (item.edition === undefined) { + item.edition = edition; + } + return item; + }); + } else { + return config; + } } /** diff --git a/src/sql/parts/dashboard/widgets/explorer/explorerWidget.component.ts b/src/sql/parts/dashboard/widgets/explorer/explorerWidget.component.ts index 4788ef233f..a2b44c019b 100644 --- a/src/sql/parts/dashboard/widgets/explorer/explorerWidget.component.ts +++ b/src/sql/parts/dashboard/widgets/explorer/explorerWidget.component.ts @@ -28,6 +28,7 @@ import { IContextViewService, IContextMenuService } from 'vs/platform/contextvie import { IWorkbenchThemeService } from 'vs/workbench/services/themes/common/workbenchThemeService'; import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; import { IProgressService } from 'vs/platform/progress/common/progress'; +import * as types from 'vs/base/common/types'; @Component({ selector: 'explorer-widget', @@ -120,6 +121,8 @@ export class ExplorerWidget extends DashboardWidget implements IDashboardWidget, let currentProfile = this._bootstrap.connectionManagementService.connectionInfo.connectionProfile; this._register(toDisposableSubscription(this._bootstrap.metadataService.databaseNames.subscribe( data => { + // Handle the case where there is no metadata service + data = data || []; let profileData = data.map(d => { let profile = new ConnectionProfile(this.capabilitiesService, currentProfile); profile.databaseName = d; diff --git a/src/sql/parts/dashboard/widgets/tasks/tasksWidget.component.ts b/src/sql/parts/dashboard/widgets/tasks/tasksWidget.component.ts index e9ed27c9e8..d97ae14349 100644 --- a/src/sql/parts/dashboard/widgets/tasks/tasksWidget.component.ts +++ b/src/sql/parts/dashboard/widgets/tasks/tasksWidget.component.ts @@ -166,7 +166,6 @@ export class TasksWidget extends DashboardWidget implements IDashboardWidget, On } public runTask(task: ICommandAction) { - let serverInfo = this._bootstrap.connectionManagementService.connectionInfo.serverInfo; this.commandService.executeCommand(task.id, this._profile); } diff --git a/src/sql/services/metadata/metadataService.ts b/src/sql/services/metadata/metadataService.ts index a81d203206..7c2a9b03f9 100644 --- a/src/sql/services/metadata/metadataService.ts +++ b/src/sql/services/metadata/metadataService.ts @@ -63,7 +63,7 @@ export class MetadataService implements IMetadataService { } } - return Promise.resolve(undefined); + return Promise.resolve([]); } public getTableInfo(connectionUri: string, metadata: sqlops.ObjectMetadata): Thenable {