context.addErrorMsg( "Fails to handle List " + item.getName( ) + ":" + t.getLocalizedMessage( ) );
	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$		ContainerContent listContent = (ContainerContent) ContentFactory				.createContainerContent( item, context.getContentObject( ) );		context.pushContentObject( listContent );						try		{			//execute the on start script			context.execute( list.getOnStart( ) );			logger.log( Level.FINE, "start get list data" ); //$NON-NLS-1$			rs = openResultSet( list );			boolean isRowAvailable = false;			if ( rs != null )			{				isRowAvailable = rs.next( );			}			logger.log( Level.FINE, "end get list data" ); //$NON-NLS-1$			String bookmarkStr = evalBookmark( item );			if ( bookmarkStr != null )				listContent.setBookmarkValue( bookmarkStr );						setVisibility( item, listContent );			setStyles( listContent, item );						emitter.getContainerEmitter( ).start( listContent );			//access list header			accessHeader( );			if ( isRowAvailable )			{				context.execute( list.getOnRow( ) );				this.accessGroup( 0 );			}			accessFooter( );			emitter.getContainerEmitter( ).end( );			context.execute( list.getOnFinish( ) );		}		catch ( Throwable t )		{			logger.log( Level.SEVERE, "Error:", t );//$NON-NLS-1$		}		finally		{			closeResultSet( rs );						context.popContentObject( );			logger.log( Level.FINE, "end list item" ); //$NON-NLS-1$		}			}