Bug 211175 ClassCastException thrown when implementing IReportItemQuery
When implementing IReportItemQuery's method, public IDataQueryDefinition[] createReportQueries(IDataQueryDefinition parent) throws BirtException, even if the impl method returns IDataQueryDefinition[], ClassCastException will be thrown during preview, the error log is as follows: java.lang.ClassCastException: [Lorg.eclipse.birt.data.engine.api.IDataQueryDefinition; at org.eclipse.birt.report.engine.executor.ExtendedGenerateExecutor.generateContent(ExtendedGenerateExecutor.java:91) at org.eclipse.birt.report.engine.executor.ExtendedGenerateExecutor.execute(ExtendedGenerateExecutor.java:72) at org.eclipse.birt.report.engine.executor.ExtendedItemExecutor.execute(ExtendedItemExecutor.java:60) at org.eclipse.birt.report.engine.internal.executor.dup.SuppressDuplicateItemExecutor.execute(SuppressDuplicateItemExecutor.java:42) If the method returns IBaseQueryDefinition[], it's ok. Look at the engine code, there's something wrong of class casting when generating content.
engine/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/executor/ExtendedGenerateExecutor.java
super.close( );
	}
	public IContent execute( )
	{
		ExtendedItemDesign extDesign = (ExtendedItemDesign) design;
		IForeignContent extContent = report.createForeignContent( );
		setContent( extContent );
		executeQueries( );
		
		initializeContent( extDesign, extContent );
		processAction( extDesign, extContent );
		processBookmark( extDesign, extContent );
		processStyle( extDesign, extContent );
		processVisibility( extDesign, extContent );
		generateContent( extDesign, extContent );
		return extContent;
	}
	protected void generateContent( ExtendedItemDesign item,
			IForeignContent content )
	{
		
		ExtendedItemHandle handle = (ExtendedItemHandle) item.getHandle( );
		String name = item.getName( );
		byte[] generationStatus = null;
		if ( itemGeneration != null )
		{
			IBaseQueryDefinition[] queries = (IBaseQueryDefinition[]) ( (ExtendedItemDesign) item )
					.getQueries( );
			ReportItemGenerationInfo info = new ReportItemGenerationInfo( );
			info.setModelObject( handle );