"Failed to render Table " + ( item.getName( ) != null ? item
MessageConstants.TABLE_PROCESSING_ERROR, ( item.getName( ) != null ? item
	public void execute( ReportItemDesign item, IReportEmitter emitter )	{		BirtTimer timer = new BirtTimer( );		timer.start( );		super.execute( item, emitter );		this.emitter = emitter;		this.tableEmitter = emitter.getTableEmitter( );		this.table = (TableItemDesign) item;		logger.log( Level.FINE, "start table item" ); //$NON-NLS-1$		//execute the on start script		context.execute( table.getOnStart( ) );		TableContent tableObj = (TableContent) ContentFactory				.createTableContent( table, context.getContentObject( ) );		context.pushContentObject( tableObj );		tableObj.setCaption( getLocalizedString( table.getCaptionKey( ), table				.getCaption( ) ) );		try		{			logger.log( Level.FINE, "start get table data" ); //$NON-NLS-1$			rs = openResultSet( table );			logger.log( Level.FINE, "end get table data" ); //$NON-NLS-1$			boolean isRowAvailable = false;			if ( rs != null )			{				isRowAvailable = rs.next( );			}			setStyles( tableObj, item );			setVisibility( item, tableObj );			String bookmarkStr = evalBookmark( item );			if ( bookmarkStr != null )				tableObj.setBookmarkValue( bookmarkStr );			tableEmitter.start( tableObj );			accessColumns( );			//access table header			accessHeader( );			//data driving report			tableEmitter.startBody( );			if ( isRowAvailable )			{				tableInfo = new TABLEINFO( );				layoutTableEmitter = new LayoutTableEmitter(emitter);				this.accessGroup( 0 );			}			//access table footer			accessSummary( );			tableEmitter.endBody( );			tableEmitter.end( );			//execute the on finish script			context.execute( table.getOnFinish( ) );		}		catch ( Throwable t )		{			logger.log( Level.SEVERE, "Error:", t );//$NON-NLS-1$			context					.addException( new EngineException(							"Failed to render Table "									+ ( item.getName( ) != null ? item											.getName( ) : "" ), t ) );//$NON-NLS-1$		}		finally		{			closeResultSet( rs );			logger.log( Level.FINE, "end table item" ); //$NON-NLS-1$			context.popContentObject( );		}		timer.stop( );		timer.logTimeTaken( logger, Level.FINE, context.getTaskIDString( ),				"Render table" ); // $NON-NLS-1$	}