Program: 11578
Project: 11578
Buggy source:
protected Node fromConfigNode(ConfigNode cNode,Rectangle bounds,Map<String,ConfigLeaf> leavesById_OUT){
  if (cNode instanceof ConfigSplit) {
    ConfigSplit cSplit=(ConfigSplit)cNode;
    int divPixels=splitPane.getDividerSize();
    int totalDivs=max(0,cSplit.childNodes.size() - 1);
    int totalContentPixels=(cSplit.isRow ? bounds.width : bounds.height) - totalDivs * divPixels;
    double totalContent=0;
    for (    ConfigNode cChild : cSplit.childNodes) {
      totalContent+=cChild.extent;
    }
    int divsSoFar=0;
    int startPixel=0;
    double contentSoFar=0;
    List<Node> children=newArrayList();
    for (    ConfigNode cChild : cSplit.childNodes) {
      if (!children.isEmpty()) {
        int xDiv=(cSplit.isRow ? startPixel : 0);
        int yDiv=(cSplit.isRow ? 0 : startPixel);
        int wDiv=(cSplit.isRow ? divPixels : bounds.width);
        int hDiv=(cSplit.isRow ? bounds.height : divPixels);
        Divider divider=new Divider();
        divider.setBounds(new Rectangle(xDiv,yDiv,wDiv,hDiv));
        children.add(divider);
        startPixel+=divPixels;
        divsSoFar++;
      }
      int endPixel=iround(((contentSoFar + cChild.extent) / totalContent) * totalContentPixels) + divsSoFar * divPixels;
      int xChild=(cSplit.isRow ? startPixel : 0);
      int yChild=(cSplit.isRow ? 0 : startPixel);
      int wChild=(cSplit.isRow ? endPixel - startPixel : bounds.width);
      int hChild=(cSplit.isRow ? bounds.height : endPixel - startPixel);
      Node child=fromConfigNode(cChild,new Rectangle(xChild,yChild,wChild,hChild),leavesById_OUT);
      children.add(child);
      startPixel=endPixel;
      contentSoFar+=cChild.extent;
    }
    Split split=(cSplit.isRow ? new RowSplit() : new ColSplit());
    split.setChildren(children);
    split.setBounds(bounds);
    return split;
  }
 else   if (cNode instanceof ConfigLeaf) {
    ConfigLeaf cLeaf=(ConfigLeaf)cNode;
    String leafId=nextLeafId();
    leavesById_OUT.put(leafId,cLeaf);
    Leaf leaf=new Leaf(leafId);
    leaf.setBounds(bounds);
    return leaf;
  }
 else {
    throw new RuntimeException("String_Node_Str" + cNode.getClass().getName());
  }
}

Fixed version (ground truth):
protected Node fromConfigNode(ConfigNode cNode,Rectangle bounds,Map<String,ConfigLeaf> leavesById_OUT){
  if (cNode instanceof ConfigSplit) {
    ConfigSplit cSplit=(ConfigSplit)cNode;
    int divPixels=splitPane.getDividerSize();
    int totalDivs=max(0,cSplit.childNodes.size() - 1);
    int totalContentPixels=(cSplit.isRow ? bounds.width : bounds.height) - totalDivs * divPixels;
    double totalContent=0;
    for (    ConfigNode cChild : cSplit.childNodes) {
      totalContent+=cChild.extent;
    }
    int divsSoFar=0;
    int startPixel=0;
    double contentSoFar=0;
    List<Node> children=newArrayList();
    for (    ConfigNode cChild : cSplit.childNodes) {
      if (!children.isEmpty()) {
        int xDiv=(cSplit.isRow ? startPixel : 0) + bounds.x;
        int yDiv=(cSplit.isRow ? 0 : startPixel) + bounds.y;
        int wDiv=(cSplit.isRow ? divPixels : bounds.width);
        int hDiv=(cSplit.isRow ? bounds.height : divPixels);
        Divider divider=new Divider();
        divider.setBounds(new Rectangle(xDiv,yDiv,wDiv,hDiv));
        children.add(divider);
        startPixel+=divPixels;
        divsSoFar++;
      }
      int endPixel=iround(((contentSoFar + cChild.extent) / totalContent) * totalContentPixels) + divsSoFar * divPixels;
      int xChild=(cSplit.isRow ? startPixel : 0) + bounds.x;
      int yChild=(cSplit.isRow ? 0 : startPixel) + bounds.y;
      int wChild=(cSplit.isRow ? endPixel - startPixel : bounds.width);
      int hChild=(cSplit.isRow ? bounds.height : endPixel - startPixel);
      Node child=fromConfigNode(cChild,new Rectangle(xChild,yChild,wChild,hChild),leavesById_OUT);
      children.add(child);
      startPixel=endPixel;
      contentSoFar+=cChild.extent;
    }
    Split split=(cSplit.isRow ? new RowSplit() : new ColSplit());
    split.setChildren(children);
    split.setBounds(bounds);
    return split;
  }
 else   if (cNode instanceof ConfigLeaf) {
    ConfigLeaf cLeaf=(ConfigLeaf)cNode;
    String leafId=nextLeafId();
    leavesById_OUT.put(leafId,cLeaf);
    Leaf leaf=new Leaf(leafId);
    leaf.setBounds(bounds);
    return leaf;
  }
 else {
    throw new RuntimeException("String_Node_Str" + cNode.getClass().getName());
  }
}