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 obj
	 *            the activity stack listener to remove
	 */
	public void removeListener( ActivityStackListener obj )
	{
		if ( listeners == null )
			return;
		int posn = listeners.indexOf( obj );
		if ( posn != -1 )
			listeners.remove( posn );
	}
	/**
	 * Sends the notifications. This method check the current record state, and
	 * fire event to corresponding method of listener.
	 * 
	 * @param event
	 *            activity stack event.
	 */
	protected void sendNotifcations( ActivityStackEvent event )
	{
		
		if ( listeners != null )
		{
			Iterator iter = listeners.iterator( );
			while ( iter.hasNext( ) )
			{
				ActivityStackListener listener = ( (ActivityStackListener) iter
						.next( ) );
				listener.stackChanged( event );
			}