Buggy code:
private Box _containingBlock ; private Dimension _relativeOffset ; private PaintingInfo _paintingInfo ; private RectPropertySet _workingMargin ; private int _index ; private String _pseudoElementOrClass ; private boolean _anonymous ; protected Box ( ) { } public abstract String dump ( LayoutContext c , String indent , int which ) { } protected void dumpBoxes ( LayoutContext c , String indent , List boxes , int which , StringBuffer result ) { } public int getWidth ( ) { } public String toString ( ) { } public void addChildForLayout ( LayoutContext c , Box child ) { } public void addChild ( Box child ) { } public void addAllChildren ( List children ) { } public void removeAllChildren ( ) { } public void removeChild ( Box target ) { } public Box getPreviousSibling ( ) { } public Box getNextSibling ( ) { } protected Box getPrevious ( Box child ) { } protected Box getNext ( Box child ) { } public void removeChild ( int i ) { } public void setParent ( Box box ) { } public Box getParent ( ) { } public Box getDocumentParent ( ) { } public int getChildCount ( ) { } public Box getChild ( int i ) { } public Iterator getChildIterator ( ) { } public List getChildren ( ) { } public static final int NOTHING = 0 ; public static final int FLUX = 1 ; public static final int CHILDREN_FLUX = 2 ; public static final int DONE = 3 ; private int _state = Box . NOTHING ; public static final int DUMP_RENDER = 2 ; public static final int DUMP_LAYOUT = 1 ; public synchronized int getState ( ) { } public synchronized void setState ( int state ) { } public static String stateToString ( int state ) { } public final CalculatedStyle getStyle ( ) { } public void setStyle ( CalculatedStyle style ) { } public Box getContainingBlock ( ) { } public void setContainingBlock ( Box containingBlock ) { } public Rectangle getMarginEdge ( int left , int top , CssContext cssCtx , int tx , int ty ) { } public Rectangle getMarginEdge ( CssContext cssCtx , int tx , int ty ) { } public Rectangle getPaintingBorderEdge ( CssContext cssCtx ) { } public Rectangle getPaintingPaddingEdge ( CssContext cssCtx ) { } public Rectangle getPaintingClipEdge ( CssContext cssCtx ) { } public Rectangle getChildrenClipEdge ( RenderingContext c ) { } public boolean intersects ( CssContext cssCtx , Shape clip ) { } public Rectangle getBorderEdge ( int left , int top , CssContext cssCtx ) { } public Rectangle getPaddingEdge ( int left , int top , CssContext cssCtx ) { } protected int getPaddingWidth ( CssContext cssCtx ) { } public Rectangle getContentAreaEdge ( int left , int top , CssContext cssCtx ) { } public Layer getLayer ( ) { } public void setLayer ( Layer layer ) { } public Dimension positionRelative ( CssContext cssCtx ) { } protected boolean isInlineBlock ( ) { } public void setAbsY ( int absY ) { } public int getAbsY ( ) { } public void setAbsX ( int absX ) { } public int getAbsX ( ) { } public boolean isStyled ( ) { } public int getBorderSides ( ) { } public void paintBorder ( RenderingContext c ) { } private boolean isPaintsRootElementBackground ( ) { } public void paintBackground ( RenderingContext c ) { } public void paintRootElementBackground ( RenderingContext c ) { } private void paintRootElementBackground ( RenderingContext c , PaintingInfo pI ) { Dimension marginCorner = pI . getOuterMarginCorner ( ) ; Rectangle canvasBounds = new Rectangle ( 0 , 0 , marginCorner . width , marginCorner . height ) ; canvasBounds . add ( c . getViewportRectangle ( ) ) ; <START_BUG> c . getOutputDevice ( ) . paintBackground ( c , getStyle ( ) , canvasBounds , canvasBounds , null ) ; <END_BUG> } public Layer getContainingLayer ( ) { } public void setContainingLayer ( Layer containingLayer ) { } public void initContainingLayer ( LayoutContext c ) { } public void connectChildrenToCurrentLayer ( LayoutContext c ) { } public List getElementBoxes ( Element elem ) { } public void reset ( LayoutContext c ) { } public void detach ( LayoutContext c ) { } public void resetChildren ( LayoutContext c , int start , int end ) { } protected void resetChildren ( LayoutContext c ) { } public abstract void calcCanvasLocation ( ) { } public void calcChildLocations ( ) { } public int forcePageBreakBefore ( LayoutContext c , IdentValue pageBreakValue , boolean pendingPageName ) { } public void forcePageBreakAfter ( LayoutContext c , IdentValue pageBreakValue ) { } public boolean crossesPageBreak ( LayoutContext c ) { } public Dimension getRelativeOffset ( ) { } public void setRelativeOffset ( Dimension relativeOffset ) { } public Box find ( CssContext cssCtx , int absX , int absY , boolean findAnonymous ) { } public boolean isRoot ( ) { } public boolean isBody ( ) { } public Element getElement ( ) { } public void setElement ( Element element ) { } public void setMarginTop ( CssContext cssContext , int marginTop ) { } public void setMarginBottom ( CssContext cssContext , int marginBottom ) { } public void setMarginLeft ( CssContext cssContext , int marginLeft ) { } public void setMarginRight ( CssContext cssContext , int marginRight ) { } private void ensureWorkingMargin ( CssContext cssContext ) { } public RectPropertySet getMargin ( CssContext cssContext ) { } protected RectPropertySet getStyleMargin ( CssContext cssContext ) { } protected RectPropertySet getStyleMargin ( CssContext cssContext , boolean useCache ) { } public RectPropertySet getPadding ( CssContext cssCtx ) { } public BorderPropertySet getBorder ( CssContext cssCtx ) { } protected int getContainingBlockWidth ( ) { } protected void resetTopMargin ( CssContext cssContext ) { } public void clearSelection ( List modified ) { }

Fix:
c . getOutputDevice ( ) . paintBackground ( c , getStyle ( ) , canvasBounds , canvasBounds , BorderPropertySet . EMPTY_BORDER ) ;