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/DesignElementHandle.java
*         properties.
	 */
	public StyleHandle getPrivateStyle( )
	{
		if ( getDefn( ).hasStyle( ) )
			return new PrivateStyleHandle( module, getElement( ) );
		return null;
	}
	/**
	 * Returns the name of this element. Returns <code>null</code> if the
	 * element does not have a name. Many elements do not require a name. The
	 * name does not inherit. If this element does not have a name, it will not
	 * inherit the name of its parent element.
	 * 
	 * @return the element name, or null if the name is not set
	 */
	public String getName( )
	{
		return getElement( ).getName( );
	}
	/**
	 * Returns the full name of this element. Generally, the full name is
	 * identical with the name of the element. That is the returned value is
	 * just what returned by {@link #getName()}.However, some elements have a
	 * local name scope and its full name is not the name of the element itself.
	 * For example, the name of the level is managed by its contaienr dimension
	 * element. Therefore its full name is that name of the container dimension
	 * appends character '/' and appends the name of the level itself, like
	 * dimensionName/levelName. If the level has no container dimension, then
	 * its full name is the same as the name.