IResultMetaData rsMeta = null; BirtException e = null;  try { rsMeta = this.getDataSetMetaData( dataSetHandle, false ); } catch ( BirtException e1 ) { e = e1; }  if ( needsSetCachedMetaData( dataSetHandle, rsMeta ) ) { dataSetHandle.setCachedMetaData( StructureFactory.createCachedMetaData( ) ); if ( rsMeta != null && rsMeta.getColumnCount( ) != 0 ) { for ( int i = 1; i <= rsMeta.getColumnCount( ); i++ ) { ResultSetColumn rsc = StructureFactory.createResultSetColumn( ); rsc.setColumnName( getColumnName( rsMeta, i ) ); rsc.setDataType( toModelDataType( rsMeta.getColumnType( i ) ) ); rsc.setPosition( new Integer( i ) );  dataSetHandle.getCachedMetaDataHandle( ) .getResultSet( ) .addItem( rsc ); } } }  if ( e != null ) throw e;  return rsMeta;
return refreshMetaData( dataSetHandle, false );
	IResultMetaData refreshMetaData( DataSetHandle dataSetHandle )			throws BirtException	{		IResultMetaData rsMeta = null;		BirtException e = null;		try		{			rsMeta = this.getDataSetMetaData( dataSetHandle, false );		}		catch ( BirtException e1 )		{			e = e1;		}		if ( needsSetCachedMetaData( dataSetHandle, rsMeta ) )		{			dataSetHandle.setCachedMetaData( StructureFactory.createCachedMetaData( ) );			if ( rsMeta != null && rsMeta.getColumnCount( ) != 0 )			{				for ( int i = 1; i <= rsMeta.getColumnCount( ); i++ )				{					ResultSetColumn rsc = StructureFactory.createResultSetColumn( );					rsc.setColumnName( getColumnName( rsMeta, i ) );					rsc.setDataType( toModelDataType( rsMeta.getColumnType( i ) ) );					rsc.setPosition( new Integer( i ) );					dataSetHandle.getCachedMetaDataHandle( )							.getResultSet( )							.addItem( rsc );				}			}		}		if ( e != null )			throw e;		return rsMeta;	}