fix the undefined error when uninstalling extension (#4258)

This commit is contained in:
Alan Ren
2019-03-01 13:58:00 -08:00
committed by GitHub
parent 8ebf5dbcb4
commit 220685a522
2 changed files with 13 additions and 5 deletions

View File

@@ -132,11 +132,16 @@ export class CapabilitiesService extends Disposable implements ICapabilitiesServ
}); });
this._register(extentionManagementService.onDidUninstallExtension(({ identifier }) => { this._register(extentionManagementService.onDidUninstallExtension(({ identifier }) => {
const connectionProvider = 'connectionProvider';
let extensionid = getIdFromLocalExtensionId(identifier.id); let extensionid = getIdFromLocalExtensionId(identifier.id);
extensionService.getExtensions().then(i => { extensionService.getExtensions().then(i => {
let extension = i.find(c => c.id === extensionid); let extension = i.find(c => c.id === extensionid);
let id = extension.contributes['connectionProvider'].providerId; if (extension && extension.contributes
&& extension.contributes[connectionProvider]
&& extension.contributes[connectionProvider].providerId) {
let id = extension.contributes[connectionProvider].providerId;
delete this.capabilities.connectionProviderCache[id]; delete this.capabilities.connectionProviderCache[id];
}
}); });
})); }));
} }

View File

@@ -458,11 +458,14 @@ export class NotebookService extends Disposable implements INotebookService {
} }
private removeContributedProvidersFromCache(identifier: IExtensionIdentifier, extensionService: IExtensionService) { private removeContributedProvidersFromCache(identifier: IExtensionIdentifier, extensionService: IExtensionService) {
const notebookProvider = 'notebookProvider';
let extensionid = getIdFromLocalExtensionId(identifier.id); let extensionid = getIdFromLocalExtensionId(identifier.id);
extensionService.getExtensions().then(i => { extensionService.getExtensions().then(i => {
let extension = i.find(c => c.id === extensionid); let extension = i.find(c => c.id === extensionid);
if (extension && extension.contributes['notebookProvider']) { if (extension && extension.contributes
let id = extension.contributes['notebookProvider'].providerId; && extension.contributes[notebookProvider]
&& extension.contributes[notebookProvider].providerId) {
let id = extension.contributes[notebookProvider].providerId;
delete this.providersMemento.notebookProviderCache[id]; delete this.providersMemento.notebookProviderCache[id];
} }
}); });