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
Messages.getString( "LibraryLayoutEditorFormPage.warning.message" ), 
					Messages.getString( "LibraryLayoutEditorFormPage.warning.prompt" ), 
					false,
					ReportPlugin.getDefault( ).getPreferenceStore( ),
					ReportPlugin.LIBRARY_WARNING_PREFERENCE );
			hasWarning = true;
		}
		
		 
		ModuleHandle model = getProvider( ).getReportModuleHandle( getEditorInput( ) );
		
		if ( model != null && getModel( ) != model )
		{
			Object oldModel = getModel( );
			setModel( model );
			
			rebuildReportDesign( oldModel );
			if ( getModel( ) != null )
			{
				this.getGraphicalViewer( ).setContents( getModel( ) );
				hookModelEventManager(getModel( ) );
				markPageStale( IPageStaleType.NONE );
			}
			updateStackActions( );
		}
		GraphicalViewer view = getGraphicalViewer( );
		if(view !=null)
		{
			UIUtil.resetViewSelection( view, true );
		}