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
* 
	 * @param stack
	 */
	private void destroyRecords( Stack stack )
	{
		Iterator iter = stack.iterator( );
		while ( iter.hasNext( ) )
		{
			ActivityRecord cmd = (ActivityRecord) iter.next( );
			assert cmd.getState( ) != ActivityRecord.DISCARD_STATE;
			cmd.destroy( );
			cmd.setState( ActivityRecord.DISCARD_STATE );
		}
		stack.removeAllElements( );
	}
	/**
	 * Sets the stack size limit. If the stack already exceeds the new limit
	 * then the excess records are flushed.
	 * 
	 * @param limit
	 *            The new stack size limit.
	 */
	public void setStackLimit( int limit )
	{
		assert limit >= 0;
		stackLimit = limit;
		trimUndoStack( );
	}
	/**
	 * Returns an array of the records in the order they were executed. This