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/script/internal/RowData.java
throw new ScriptException( e.getLocalizedMessage( ) );
		}
	}
	
	private String process( String expression )
	{
		if ( expression == null )
			return null;
		expression = expression.trim( );
		
		Matcher mWord = rowWithWord.matcher( expression );
		StringBuffer sb = new StringBuffer( );
		while ( mWord.find( ) )
		{
			String group = mWord.group( 1 );
			
			Matcher mIndex = rowWithIndex.matcher( group );
			
			if ( !mIndex.matches( ) )
			{
				group = group.replaceAll( "\\[", "[\"" );
				group = group.replaceAll( "\\]", "\"]" );
			}
			mWord.appendReplacement( sb, group );
		}
		mWord.appendTail( sb );
		return sb.toString( );
	}
	private Object eval( String expression ) throws ScriptException
	{