Bug 146976 Save state of the report not correct.
Reproduce: 1) New a library "lib1", add a label "label1" 2) Publish "lib1" 3) New a report "report1", use "lib1" 4) Drag "lib1.label1" into "report1" 5) Go back to "lib1", drop "label1", save and publish again. 6) Go to "report1", refresh the libaray explorer and design. 7) Save "report1" 8) Now, we go back to "lib1" 9) Undo the previous "delete command", "label1" is added back. 10) Save "lib1", and re-publish. 11) Go to "report1", refresh the libaray explorer and design. 12) Save "report1" At this stage, "report1" is saved, but the dirty indicator(*) still displayed in the left side of the report name. I am testing on build N20060613
model/org.eclipse.birt.report.model/src/org/eclipse/birt/report/model/activity/ActivityStack.java
* 
 * <h3>Theory of Operation</h3>
 * 
 * The record mechanism relies on accurate implementation of each record.
 * Records change the state of the model, and rely on accurate model state
 * transitions so that undo and redo can be done The following rules must hold:
 * <p>
 * <ul>
 * <li>The execution of a record transitions the model from one state, called
 * the <em>initial</em> state, to another state, called the <em>final</em>
 * state. Think of a model state as a snapshot of the model. Every change of
 * state is done by a record. If the model starts in state S0, then record C1
 * will have S0 as its initial state. ActivityRecord C1 moves the model into
 * state S1, the final state of record C1. A later record C2 will move the model
 * into a new state, S2, and so on.</li>
 * 
 * <li>Both the initial and final states must be <em>valid</em> model states.
 * A valid state is one that satisfies all the semantic constraints of the
 * model. (For example that if an element has a value for property P, then P is
 * a property defined on that element.) Therefore, the record should assume that
 * the model starts out in a valid form, and must leave the model in a valid
 * form.</li>
 * 
 * <li>While the record executes, is undone, or is redone, the model may
 * temporarily be in an invalid <em>transition</em> state. No application
 * logic should execute during the transition state. This state must be seen
 * <strong>only </strong> by the record itself, since only this record
 * understands this state.</li>
 * <li>The undo of a record must transition the model from the final state back
 * to the initial state.</li>