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/GridItemExecutor.java
}
	/**
	 * execute a cell. the execution process is:
	 * <li> create a cell content
	 * <li> push the content into the stack
	 * <li> intialize the cell
	 * <li> process the action, bookmark, style, visibility
	 * <li> call onCreate if necessary
	 * <li> call emitter to start the cell
	 * <li> for each element in the cell, execute the element.
	 * <li> call emiter to close the cell
	 * <li> popup the cell.
	 * 
	 * @param rowContent
	 *            row content
	 * @param cell
	 *            cell design
	 * @param emitter
	 *            output emitter
	 */
	private void executeCell( IRowContent rowContent, CellDesign cell,
			IContentEmitter emitter, IRowData rowData )
	{
		ICellContent cellContent = report.createCellContent( );
		assert ( cellContent instanceof CellContent );
		context.pushContent( cellContent );
		initializeContent( rowContent, cell, cellContent );
		cellContent.setColumn( cell.getColumn( ) );
		cellContent.setColSpan( cell.getColSpan( ) );
		cellContent.setRowSpan( cell.getRowSpan( ) );