[319642] StructuredTextEditor may complete model lifecycle on a different model
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/StructuredTextEditor.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/StructuredTextEditor.java
index 1e8b207..3d0285d 100644
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/StructuredTextEditor.java
+++ b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/StructuredTextEditor.java
@@ -1072,10 +1072,12 @@
initializeDocumentProvider(null);
}
- private void aboutToSaveModel() {
- if (getInternalModel() != null) {
- getInternalModel().aboutToChangeModel();
+ private IStructuredModel aboutToSaveModel() {
+ IStructuredModel model = getInternalModel();
+ if (model != null) {
+ model.aboutToChangeModel();
}
+ return model;
}
protected void addSourceMenuActions(IMenuManager menu) {
@@ -1817,13 +1819,14 @@
* @see org.eclipse.ui.ISaveablePart#doSave(org.eclipse.core.runtime.IProgressMonitor)
*/
public void doSave(IProgressMonitor progressMonitor) {
+ IStructuredModel model = null;
try {
- aboutToSaveModel();
+ model = aboutToSaveModel();
updateEncodingMemento();
super.doSave(progressMonitor);
}
finally {
- savedModel();
+ savedModel(model);
}
}
@@ -2809,9 +2812,9 @@
}
}
- private void savedModel() {
- if (getInternalModel() != null) {
- getInternalModel().changedModel();
+ private void savedModel(IStructuredModel model) {
+ if (model != null) {
+ model.changedModel();
}
}