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/presentation/LocalizedContentVisitor.java
DesignElementHandle element = ( (ReportItemDesign) content
					.getGenerateBy( ) ).getHandle( );
			if ( key != null && element != null )
			{
				String t = ModuleUtil.getExternalizedValue( element, key, text,
						ULocale.forLocale( locale ) );
				if ( t != null )
				{
					return t;
				}
			}
		}
		return text;
	}
	public Object visitImage( IImageContent image, Object value )
	{
		if ( image.getImageSource( ) == IImageContent.IMAGE_FILE
				|| image.getImageSource( ) == IImageContent.IMAGE_URL )
		{
			String strUri = image.getURI( );
			ReportDesignHandle reportDesign = context.getDesign( );
			URL uri = reportDesign
					.findResource( strUri, IResourceLocator.IMAGE );
			if ( uri != null )
			{
				image.setURI( uri.toExternalForm( ) );
			}
		}
		
		handleOnRender( image );