/// <summary> /// The only thing that this method does is signal the underlying /// XML transaction to 'complete', which will push changes from the XLinq /// tree in the XML model to the XML Editor's parse tree and the VS buffer. /// This *DOES NOT* commit changes to disk and *DOES NOT* modify the XLinq /// tree. /// An appropriate exception is thrown if this /// operation fails and the transaction is left in Open state to allow /// for the possibility of corrections or retries. If there are no /// failures, the transaction will be in committed state when this /// operation returns. /// </summary> public void Commit(bool dirtyArtifact) { if (_createdXmlTxn) { try { _xmlTx.Commit(); if (dirtyArtifact) { _artifact.IsDirty = true; } } catch { // an error ocurred while commiting transaction, and if it is not caused by ReloadArtifact, we need to reload artifact if (!_artifact.IsArtifactReloading) { _artifact.ReloadArtifact(); } throw; } } }