From 41aa92e4c89010586ec43c19264d963ed2933fe2 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Mon, 5 Sep 2016 16:48:10 +0200 Subject: [PATCH] Write access problems are not handled clean (fixes #11504) --- .../workbench/parts/files/browser/saveErrorHandler.ts | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/vs/workbench/parts/files/browser/saveErrorHandler.ts b/src/vs/workbench/parts/files/browser/saveErrorHandler.ts index ad3577e68ad..92c2f14852a 100644 --- a/src/vs/workbench/parts/files/browser/saveErrorHandler.ts +++ b/src/vs/workbench/parts/files/browser/saveErrorHandler.ts @@ -74,23 +74,25 @@ export class SaveErrorHandler implements ISaveErrorHandler { actions.push(new Action('workbench.files.action.saveAs', SaveFileAsAction.LABEL, null, true, () => { const saveAsAction = this.instantiationService.createInstance(SaveFileAsAction, SaveFileAsAction.ID, SaveFileAsAction.LABEL); saveAsAction.setResource(resource); + saveAsAction.run().done(() => saveAsAction.dispose(), errors.onUnexpectedError); - return saveAsAction.run().then(() => { saveAsAction.dispose(); return true; }); + return TPromise.as(true); })); // Discard actions.push(new Action('workbench.files.action.discard', nls.localize('discard', "Discard"), null, true, () => { const revertFileAction = this.instantiationService.createInstance(RevertFileAction, RevertFileAction.ID, RevertFileAction.LABEL); revertFileAction.setResource(resource); + revertFileAction.run().done(() => revertFileAction.dispose(), errors.onUnexpectedError); - return revertFileAction.run().then(() => { revertFileAction.dispose(); return true; }); + return TPromise.as(true); })); // Retry if (isReadonly) { actions.push(new Action('workbench.files.action.overwrite', nls.localize('overwrite', "Overwrite"), null, true, () => { if (!model.isDisposed()) { - return model.save(true /* overwrite readonly */).then(() => true); + model.save(true /* overwrite readonly */).done(null, errors.onUnexpectedError); } return TPromise.as(true); @@ -99,8 +101,9 @@ export class SaveErrorHandler implements ISaveErrorHandler { actions.push(new Action('workbench.files.action.retry', nls.localize('retry', "Retry"), null, true, () => { const saveFileAction = this.instantiationService.createInstance(SaveFileAction, SaveFileAction.ID, SaveFileAction.LABEL); saveFileAction.setResource(resource); + saveFileAction.run().done(() => saveFileAction.dispose(), errors.onUnexpectedError); - return saveFileAction.run().then(() => { saveFileAction.dispose(); return true; }); + return TPromise.as(true); })); }