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/extension/ReportItemPresentationBase.java
this.info = info;
		setActionHandler( info.getActionHandler( ) );
		setApplicationClassLoader( info.getApplicationClassLoader( ) );
		setDynamicStyle( info.getExtendedItemContent( ).getComputedStyle( ) );
		setExtendedItemContent( info.getExtendedItemContent( ) );
		setLocale( info.getReportContext( ).getLocale( ) );
		setModelObject( info.getModelObject( ) );
		setOutputFormat( info.getOutputFormat( ) );
		setReportQueries( info.getReportQueries( ) );
		setResolution( info.getResolution( ) );
		setScriptContext( info.getReportContext( ) );
		setSupportedImageFormats( info.getSupportedImageFormats( ) );
	}
	
	/*
	 * (non-Javadoc)
	 * 
	 * @see org.eclipse.birt.report.engine.extension.IReportItemPresentation#getOutputType(java.lang.String,
	 *      java.lang.String)
	 */
	public int getOutputType( )
	{
		return OUTPUT_NONE;
	}
	public Object getOutputContent( )
	{
		return null;
	}
	/*
	 * (non-Javadoc)