childExecutor = null;
	protected boolean layoutChildren( )	{		boolean hasNext = false;		// first we need layout the remain content		if ( childLayout != null )		{			hasNext = childLayout.layout( );			if ( hasNext )			{				return true;			}			childLayout.close( );			childExecutor.close( );			childLayout = null;		}		// then layout the next content		while ( executor.hasNextChild( ) )		{			childExecutor = (IReportItemExecutor) executor.getNextChild( );			IContent childContent = childExecutor.execute( );			if (childContent != null)			{				childLayout = engine.createLayoutManager( this, childContent,						childExecutor, emitter );				hasNext = childLayout.layout( );				if ( hasNext )				{					return true;				}				childLayout.close( );			}			childExecutor.close( );		}		return false;	}