Bug 123722 Java based scripting -> getExpressionValue(int i) of IRowData returns unreasonable value
public void onPrepare( IRow row, IReportContext reportContext ) { try { row.setBookmark( "\"row-bookmark\"" ); System.out.println( row.getBookmark( ) ); } catch ( Exception e ) { e.printStackTrace( ); } } public void onCreate(IRowInstance rowInstance, IReportContext reportContext) { try { IRowData rowData = rowInstance.getRowData( ); Object int2 = rowData.getExpressionValue( 1 ); System.out.println( int2 ); } catch ( Exception e ) { e.printStackTrace( ); } } Consider the script above, according to Javadoc, rowData.getExpressionValue( 1 ) will return the first data expr. of the row, i.e. the value of the first column. However, it was noticed that "row-bookmark" was returned instead. And if i used rowData.getExpressionValue( 2 ), then i got the right value. So if it was the correct implementation, it should be clearly stated in Javadoc.
engine/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/executor/ListingElementExecutor.java
if ( rset == null || rsetEmpty == true )
		{
			
			startTOCEntry( null );
			accessHeader( listing, outputEmitter, null );
			finishTOCEntry( );
			startTOCEntry( null );
			accessFooter( listing, outputEmitter, null );
			finishTOCEntry( );
			return;
		}
		IResultIterator rsIterator = ( (DteResultSet) rset )
				.getResultIterator( );
		IBaseQueryDefinition query = listing.getQuery( );
		Collection rowExpressions = ( query == null ? null : query
				.getRowExpressions( ) );
		Collection beforeExpressions = ( query == null ? null : query
				.getBeforeExpressions( ) );
		Collection afterExpressions = ( query == null ? null : query
				.getAfterExpressions( ) );
		IRowData rowData = new RowData( rsIterator, rowExpressions );
		IRowData headerData = new RowData( rsIterator, beforeExpressions );
		IRowData footerData = new RowData( rsIterator, afterExpressions );
		startTOCEntry( null );
		accessHeader( listing, outputEmitter, headerData );
		finishTOCEntry( );
		if ( groupCount == 0 )
		{
			
			do