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
{
		String outputFormat = getOutputFormat( );
		if ( "FO".equalsIgnoreCase( outputFormat )
				|| "PDF".equalsIgnoreCase( outputFormat )
				||"POSTSCRIPT".equalsIgnoreCase( outputFormat ))
			return true;
		return false;
	}
	
	private int getChartResolution( )
	{
		Map appContext = context.getAppContext( );
		int resolution = 0;
		if ( appContext != null )
		{
			Object tmp = appContext
					.get( EngineConstants.APPCONTEXT_CHART_RESOLUTION );
			if ( tmp != null && tmp instanceof Number )
			{
				resolution = ( (Number) tmp ).intValue( );
				if ( resolution < 96 )
				{
					resolution = 96;
				}
			}
		}
		if ( 0 == resolution )
		{
			if ( isForPrinting( ) )
			{