Bug 414088 Error in code of PageArea.createRoot
This seems to me like a copy&paste error in the code: protected void createRoot( ) { ... pageRoot.setBoxStyle( boxStyle ); rootLeft = getDimensionValue( pageContent, pageContent.getMarginLeft( ), pageContentWidth ); rootTop = getDimensionValue( pageContent, pageContent.getMarginTop( ), pageContentWidth ); rootLeft = Math.max( 0, rootLeft ); ... Consider the line "rootTop = ...". Shouldn't this read rootTop = getDimensionValue( pageContent, pageContent.getMarginTop( ), pageContentHeight ); instead?
engine/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/nLayout/area/impl/PageArea.java
int rootBottom = getDimensionValue( pageContent, pageContent
				.getMarginBottom( ), pageContentWidth );
		rootRight = Math.max( 0, rootRight );
		rootBottom = Math.max( 0, rootBottom );
		if ( rootLeft + rootRight > pageContentWidth )
		{
			rootRight = 0;
		}
		if ( rootTop + rootBottom > pageContentHeight )
		{
			rootBottom = 0;
		}
		rootWidth = pageContentWidth - rootLeft - rootRight;
		rootHeight = pageContentHeight - rootTop - rootBottom;
		pageRoot.setWidth( rootWidth );
		pageRoot.setHeight( rootHeight );
		setRoot( pageRoot );
		pageRoot.setParent( this );
		/**
		 * set position and dimension for header
		 */
		int headerHeight = getDimensionValue( pageContent, pageContent
				.getHeaderHeight( ), pageRoot.getHeight( ) );
		int headerWidth = pageRoot.getWidth( ) - boxStyle.getLeftBorderWidth( )
				- boxStyle.getRightBorderWidth( );
		headerHeight = Math.max( 0, headerHeight );
		headerHeight = Math.min( pageRoot.getHeight( ), headerHeight );
		RegionArea header = new RegionArea( );
		header.setHeight( headerHeight );
		header.setWidth( headerWidth );