Program: 85428
Project: 85428
Buggy source:
public void paint(Graphics g){
  Image offscreen=createVolatileImage(getWidth(),getHeight());
  Graphics2D g2d;
  if (offscreen == null) {
    g2d=(Graphics2D)g;
  }
 else {
    g2d=(Graphics2D)offscreen.getGraphics();
  }
  g2d.setBackground(Color.WHITE);
  g2d.clearRect(0,0,getWidth(),getHeight());
  RenderingHints rh=new RenderingHints(RenderingHints.KEY_TEXT_ANTIALIASING,RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
  g2d.setRenderingHints(rh);
  addLabel(g2d,this.getSourceDbName(),sourceX + ITEM_WIDTH / 2,HEADER_TOP_MARGIN + HEADER_HEIGHT / 2);
  addLabel(g2d,this.getTargetDbName(),targetX + ITEM_WIDTH / 2,HEADER_TOP_MARGIN + HEADER_HEIGHT / 2);
  if (showingArrowStarts && dragRectangle == null) {
    for (    LabeledRectangle item : getVisibleSourceComponents())     Arrow.drawArrowHead(g2d,Math.round(item.getX() + item.getWidth() + Arrow.headThickness),item.getY() + item.getHeight() / 2);
  }
  for (  LabeledRectangle component : getVisibleSourceComponents())   if (component != dragRectangle)   component.paint(g2d);
  for (  LabeledRectangle component : getVisibleTargetComponents())   if (component != dragRectangle)   component.paint(g2d);
  for (int i=HighlightStatus.values().length - 1; i >= 0; i--) {
    HighlightStatus status=HighlightStatus.values()[i];
    for (    Arrow arrow : arrowsByStatus(status)) {
      if (arrow != dragArrow) {
        arrow.paint(g2d);
      }
    }
  }
  if (dragRectangle != null)   dragRectangle.paint(g2d);
  if (dragArrow != null)   dragArrow.paint(g2d);
  if (offscreen != null)   g.drawImage(offscreen,0,0,this);
}

Fixed version (ground truth):
public void paint(Graphics g){
  Image offscreen=createVolatileImage(getWidth(),getHeight());
  Graphics2D g2d;
  if (offscreen == null) {
    g2d=(Graphics2D)g;
  }
 else {
    g2d=(Graphics2D)offscreen.getGraphics();
  }
  g2d.setBackground(Color.WHITE);
  g2d.clearRect(0,0,getWidth(),getHeight());
  RenderingHints rh=new RenderingHints(RenderingHints.KEY_TEXT_ANTIALIASING,RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
  g2d.setRenderingHints(rh);
  addLabel(g2d,this.getSourceDbName(),sourceX + ITEM_WIDTH / 2,HEADER_TOP_MARGIN + HEADER_HEIGHT / 2);
  addLabel(g2d,this.getTargetDbName(),cdmX + ITEM_WIDTH / 2,HEADER_TOP_MARGIN + HEADER_HEIGHT / 2);
  if (showingArrowStarts && dragRectangle == null) {
    for (    LabeledRectangle item : getVisibleSourceComponents())     Arrow.drawArrowHead(g2d,Math.round(item.getX() + item.getWidth() + Arrow.headThickness),item.getY() + item.getHeight() / 2);
  }
  for (  LabeledRectangle component : getVisibleSourceComponents())   if (component != dragRectangle)   component.paint(g2d);
  for (  LabeledRectangle component : getVisibleTargetComponents())   if (component != dragRectangle)   component.paint(g2d);
  for (int i=HighlightStatus.values().length - 1; i >= 0; i--) {
    HighlightStatus status=HighlightStatus.values()[i];
    for (    Arrow arrow : arrowsByStatus(status)) {
      if (arrow != dragArrow) {
        arrow.paint(g2d);
      }
    }
  }
  if (dragRectangle != null)   dragRectangle.paint(g2d);
  if (dragArrow != null)   dragArrow.paint(g2d);
  if (offscreen != null)   g.drawImage(offscreen,0,0,this);
}