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
{
	protected IReportItemPresentationInfo info;
	protected ExtendedItemHandle modelHandle;
	protected ClassLoader appClassLoader;
	protected IReportContext context;
	protected int dpi = 72;
	protected String outputFormat;
	protected String supportedImageFormats;
	protected Locale locale;
	protected IBaseQueryDefinition[] queries;
	protected IHTMLActionHandler ah = null;
	protected IStyle style = null;
	protected IContent content = null;
	/**
	 * Constructor that does nothing
	 */
	public ReportItemPresentationBase( )
	{
	}
	public void init( IReportItemPresentationInfo info )
	{
		if ( info == null )
		{
			throw new NullPointerException( );
		}