logger.log( Level.FINE,"start list item" );  context.execute( list.getOnStart( ) );  ContainerContent listContent = (ContainerContent)ContentFactory
logger.log( Level.FINE, "start list item" ); ContainerContent listContent = (ContainerContent) ContentFactory
	public void execute( ReportItemDesign item, IReportEmitter emitter )	{		super.execute( item, emitter );		/*		 * Getting item emitter returns null means that excuting this item is		 * not necessary. for example, items in masterpage for html emitter will		 * be discarded.		 */		if ( emitter.getEmitter( "text" ) == null ) //$NON-NLS-1$		{			return;		}		list = (ListItemDesign) item;		logger.log( Level.FINE,"start list item" ); //$NON-NLS-1$		//execute the on start script		context.execute( list.getOnStart( ) );		ContainerContent listContent = (ContainerContent)ContentFactory				.createContainerContent( item, context.getContentObject( ) );		context.pushContentObject( listContent );				String bookmarkStr = evalBookmark( item );		if ( bookmarkStr != null )			listContent.setBookmarkValue( bookmarkStr );		setVisibility( item, listContent );		setStyles( listContent, item );		emitter.getContainerEmitter( ).start( listContent );		logger.log( Level.FINE, "start get list data" ); //$NON-NLS-1$		rs = openResultSet( list );		logger.log( Level.FINE, "end get list data" ); //$NON-NLS-1$		boolean isRowAvailable = false;		if ( rs != null )		{			isRowAvailable = rs.next( );		}		//access list header		accessHeader( );		if ( isRowAvailable )		{			context.execute( list.getOnRow( ) );			this.accessGroup( 0 );		}		accessFooter( );		closeResultSet( rs );		emitter.getContainerEmitter( ).end( );		context.execute( list.getOnFinish( ) );		context.popContentObject( );		logger.log( Level.FINE, "end list item" ); //$NON-NLS-1$	}