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/TableItemExecutor.java
assert ( rowContent instanceof RowContent );
			IContent parent = context.getContent( );
			context.pushContent( rowContent );
			initializeContent( parent, row, rowContent );
			processStyle( row, rowContent );
			processVisibility( row, rowContent );
			processBookmark( row, rowContent );
			processAction( row, rowContent );
			if ( needPageBreak )
			{
				rowContent.getStyle( ).setProperty(
						IStyle.STYLE_PAGE_BREAK_BEFORE, IStyle.SOFT_VALUE );
				needPageBreak = false;
			}
			if ( context.isInFactory( ) )
			{
				RowScriptExecutor.handleOnCreate(
							( RowContent ) rowContent, rowData, context );
			}
			startTOCEntry( rowContent );
			if ( emitter != null )
			{
				emitter.startRow( rowContent );
			}
			rowClosed = false;
		}
		for ( int j = 0; j < row.getCellCount( ); j++ )
		{
			CellDesign cell = row.getCell( j );
			if ( cell != null )