Bug 191880 Close the invalid library will lead the ClassCastException occurs and that error will lead some operation throw exceptions
Description: Close the invalid library will lead the ClassCastException occurs and that error will lead some operation such as insert a Create a datasource throw exceptions Build number: 2.2.0.v20070608-0630 Steps to reproduce: 1, Open the attache library file 2, Close that file 3, New a Data source in another report design file Expected result: After step2, the library is closed without exceptions After step3, the parameter can be created successfully without exceptions Actual result: After step2, ClassCastException occurs After step3, NPE throws out Error log: java.lang.ClassCastException: org.eclipse.gef.commands.CommandStack at org.eclipse.birt.report.designer.ui.editors.LibraryLayoutEditorFormPage.dispose(LibraryLayoutEditorFormPage.java:249) at org.eclipse.birt.report.designer.ui.editors.MultiPageReportEditor.dispose(MultiPageReportEditor.java:1010) at org.eclipse.birt.report.designer.ui.editors.IDEMultiPageReportEditor.dispose(IDEMultiPageReportEditor.java:432) at org.eclipse.birt.report.designer.ui.editors.ReportEditorProxy.dispose(ReportEditorProxy.java:133) NPE: java.lang.NullPointerException at org.eclipse.birt.report.designer.ui.editor.pages.xml.ReportXMLSourceEditorFormPage.reloadEditorInput(ReportXMLSourceEditorFormPage.java:514) at org.eclipse.birt.report.designer.ui.editor.pages.xml.ReportXMLSourceEditorFormPage.access$1(ReportXMLSourceEditorFormPage.java:509) at org.eclipse.birt.report.designer.ui.editor.pages.xml.ReportXMLSourceEditorFormPage$1.stackChanged(ReportXMLSourceEditorFormPage.java:408)
UI/org.eclipse.birt.report.designer.ui.lib/src/org/eclipse/birt/report/designer/ui/editors/LibraryLayoutEditorFormPage.java
return true;
	}
	
	/**
	 * Rebuild report design model.
	 * 
	 * @param oldModel
	 */
	protected void rebuildReportDesign( Object oldModel )
	{
		
		WrapperCommandStack stack = (WrapperCommandStack) getCommandStack( );
		if ( stack != null )
		{
			stack.removeCommandStackListener( getCommandStackListener( ) );
			stack.setActivityStack( getModel( ).getCommandStack( ) );
			stack.addCommandStackListener( getCommandStackListener( ) );
		}
		
		SessionHandleAdapter.getInstance( ).resetReportDesign( oldModel,
				getModel( ) );
		SessionHandleAdapter.getInstance( ).setReportDesignHandle(
				getProvider( ).getReportModuleHandle( getEditorInput( ) ) );
	}
	public void dispose( )
	{
		if ( getCommandStack( ) != null )
		{
			WrapperCommandStack stack = (WrapperCommandStack) getCommandStack( );
			stack.removeCommandStackListener( getCommandStackListener( ) );