Bug 203690 Exception occurs when preview a report which includes a library crosstab and a crosstab using library cube[1102]
Description: Exception occurs when preview a report which includes a library crosstab and a crosstab using library cube Build number: 2.2.1.v20070918-0630 Steps to reproduce: 1, New a cube in a rptlibrary 2, Publish the library 3, New a report design include a crosstab(crosstab_lib) which is using the cube from that library 4, Go back the library and new a crosstab 5, Refresh the library in report design and drag the crosstab_lib from rptlibrary. 6, Preview the report Expected result: The two crosstab are preview successfully Actual result: Only the first crosstab can be preview but the second is failed to preview and exception occurs Error log: Crosstab contains null measure defintion or the specific measure "null" doest not exist in associated cube. ( 1 time(s) ) detail : org.eclipse.birt.report.item.crosstab.core.CrosstabException: Crosstab contains null measure defintion or the specific measure "null" doest not exist in associated cube. at org.eclipse.birt.report.item.crosstab.core.util.CrosstabQueryUtil.createCubeQuery(CrosstabQueryUtil.java:112) at org.eclipse.birt.report.item.crosstab.core.re.CrosstabReportItemQuery.createReportQueries(CrosstabReportItemQuery.java:89) at org.eclipse.birt.report.engine.data.dte.ReportQueryBuilder$QueryBuilderVisitor.visitExtendedItem(ReportQueryBuilder.java:612) at org.eclipse.birt.report.engine.ir.ExtendedItemDesign.accept(ExtendedItemDesign.java:45) at org.eclipse.birt.report.engine.data.dte.ReportQueryBuilder.build(ReportQueryBuilder.java:251) at org.eclipse.birt.report.engine.data.dte.ReportQueryBuilder.build(ReportQueryBuilder.java:233) at org.eclipse.birt.report.engine.data.dte.AbstractDataEngine.prepare(AbstractDataEngine.java:136) at org.eclipse.birt.report.engine.executor.ReportExecutor.execute(ReportExecutor.java:94) at org.eclipse.birt.report.engine.internal.executor.wrap.WrappedReportExecutor.execute(WrappedReportExecutor.java:59) at org.eclipse.birt.report.engine.internal.executor.dup.SuppressDuplciateReportExecutor.execute(SuppressDuplciateReportExecutor.java:51) at org.eclipse.birt.report.engine.internal.executor.wrap.WrappedReportExecutor.execute(WrappedReportExecutor.java:59) at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.doRun(RunAndRenderTask.java:138) at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.run(RunAndRenderTask.java:68) at org.eclipse.birt.report.service.ReportEngineService.runAndRenderReport(Unknown Source) at org.eclipse.birt.report.service.ReportEngineService.runAndRenderReport(Unknown Source) at org.eclipse.birt.report.service.BirtViewerReportService.runAndRenderReport(Unknown Source) at org.eclipse.birt.report.service.actionhandler.BirtGetPageAllActionHandler.__execute(Unknown Source) at org.eclipse.birt.report.service.actionhandler.AbstractBaseActionHandler.execute(Unknown Source) at org.eclipse.birt.report.soapengine.processor.AbstractBaseDocumentProcessor.__executeAction(Unknown Source) at org.eclipse.birt.report.soapengine.processor.AbstractBaseComponentProcessor.executeAction(Unknown Source) at org.eclipse.birt.report.soapengine.processor.BirtDocumentProcessor.handleGetPageAll(Unknown Source)
model/org.eclipse.birt.report.model/src/org/eclipse/birt/report/model/api/SlotHandle.java
* yet added to the design.
	 * 
	 * @param content
	 *            the newly created element
	 * @return a list containing all errors for the pasted element
	 * @throws ContentException
	 *             if the element is not allowed in the slot
	 * @throws NameException
	 *             if the element has a duplicate or illegal name
	 */
	public List paste( IDesignElement content ) throws ContentException,
			NameException
	{
		if ( content == null )
			return Collections.EMPTY_LIST;
		add( content.getHandle( getModule( ) ) );
		return checkPostPasteErrors( (DesignElement) content );
	}
	/**
	 * Pastes a report item to the slot. The item must be newly created and not
	 * yet added to the design.
	 * 
	 * @param content
	 *            the newly created element handle
	 * @param newPos
	 *            the position index at which the content to be inserted.
	 * @return a list containing all errors for the pasted element
	 * @throws ContentException
	 *             if the element is not allowed in the slot
	 * @throws NameException