Skip to content

Commit 41aa92e

Browse files
author
Benjamin Pasero
committed
Write access problems are not handled clean (fixes microsoft#11504)
1 parent e12fc11 commit 41aa92e

1 file changed

Lines changed: 7 additions & 4 deletions

File tree

src/vs/workbench/parts/files/browser/saveErrorHandler.ts

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -74,23 +74,25 @@ export class SaveErrorHandler implements ISaveErrorHandler {
7474
actions.push(new Action('workbench.files.action.saveAs', SaveFileAsAction.LABEL, null, true, () => {
7575
const saveAsAction = this.instantiationService.createInstance(SaveFileAsAction, SaveFileAsAction.ID, SaveFileAsAction.LABEL);
7676
saveAsAction.setResource(resource);
77+
saveAsAction.run().done(() => saveAsAction.dispose(), errors.onUnexpectedError);
7778

78-
return saveAsAction.run().then(() => { saveAsAction.dispose(); return true; });
79+
return TPromise.as(true);
7980
}));
8081

8182
// Discard
8283
actions.push(new Action('workbench.files.action.discard', nls.localize('discard', "Discard"), null, true, () => {
8384
const revertFileAction = this.instantiationService.createInstance(RevertFileAction, RevertFileAction.ID, RevertFileAction.LABEL);
8485
revertFileAction.setResource(resource);
86+
revertFileAction.run().done(() => revertFileAction.dispose(), errors.onUnexpectedError);
8587

86-
return revertFileAction.run().then(() => { revertFileAction.dispose(); return true; });
88+
return TPromise.as(true);
8789
}));
8890

8991
// Retry
9092
if (isReadonly) {
9193
actions.push(new Action('workbench.files.action.overwrite', nls.localize('overwrite', "Overwrite"), null, true, () => {
9294
if (!model.isDisposed()) {
93-
return model.save(true /* overwrite readonly */).then(() => true);
95+
model.save(true /* overwrite readonly */).done(null, errors.onUnexpectedError);
9496
}
9597

9698
return TPromise.as(true);
@@ -99,8 +101,9 @@ export class SaveErrorHandler implements ISaveErrorHandler {
99101
actions.push(new Action('workbench.files.action.retry', nls.localize('retry', "Retry"), null, true, () => {
100102
const saveFileAction = this.instantiationService.createInstance(SaveFileAction, SaveFileAction.ID, SaveFileAction.LABEL);
101103
saveFileAction.setResource(resource);
104+
saveFileAction.run().done(() => saveFileAction.dispose(), errors.onUnexpectedError);
102105

103-
return saveFileAction.run().then(() => { saveFileAction.dispose(); return true; });
106+
return TPromise.as(true);
104107
}));
105108
}
106109

0 commit comments

Comments
 (0)