Program: 58040
Project: 58040
Buggy source:
/** 
 * Initialize the layout for the sides of the arch
 * @param columnLayout
 * @param layout
 * @param layoutManager
 * @param dimensinoGroupStartIndex
 * @param dimensinoGroupEndIndex
 */
private void initSideLayout(Column columnLayout,LayoutTemplate layout,LayoutManager layoutManager,int dimensinoGroupStartIndex,int dimensinoGroupEndIndex){
  columnLayout.setFrameColor(1,1,0,1);
  leftColumnLayout.setDebug(true);
  columnLayout.setBottomUp(true);
  ElementLayout dimensionGroupSpacing=new ElementLayout("String_Node_Str");
  DimensionGroupSpacingRenderer dimensionGroupSpacingRenderer=null;
  dimensionGroupSpacing.setDebug(true);
  if (dimensinoGroupStartIndex == 0) {
    dimensionGroupSpacingRenderer=new DimensionGroupSpacingRenderer(null,connectionRenderer,null,null,this);
  }
 else {
    dimensionGroupSpacingRenderer=new DimensionGroupSpacingRenderer(null,connectionRenderer,null,dimensionGroupManager.getDimensionGroups().get(dimensionGroupManager.getCenterGroupStartIndex()),this);
  }
  dimensionGroupSpacingRenderer.setVertical(false);
  dimensionGroupSpacingRenderer.setLineLength(archSideThickness);
  dimensionGroupSpacing.setRenderer(dimensionGroupSpacingRenderer);
  dimensionGroupSpacing.setPixelGLConverter(parentGLCanvas.getPixelGLConverter());
  dimensionGroupSpacing.setGrabY(true);
  columnLayout.append(dimensionGroupSpacing);
  for (int dimensionGroupIndex=dimensinoGroupStartIndex; dimensionGroupIndex < dimensinoGroupEndIndex; dimensionGroupIndex++) {
    DimensionGroup group=dimensionGroupManager.getDimensionGroups().get(dimensionGroupIndex);
    group.getLayout().setRatioSizeX(1);
    group.getLayout().setAbsoluteSizeY(archSideThickness);
    group.getLayout().setDebug(true);
    group.setArchHeight(0);
    columnLayout.append(group.getLayout());
    group.setCollapsed(true);
    dimensionGroupSpacing=new ElementLayout("String_Node_Str");
    dimensionGroupSpacingRenderer=new DimensionGroupSpacingRenderer(null,null,group,null,this);
    dimensionGroupSpacingRenderer.setVertical(false);
    dimensionGroupSpacingRenderer.setLineLength(archSideThickness);
    dimensionGroupSpacing.setRenderer(dimensionGroupSpacingRenderer);
    dimensionGroupSpacing.setPixelGLConverter(parentGLCanvas.getPixelGLConverter());
    dimensionGroupSpacing.setDebug(true);
    dimensionGroupSpacing.setGrabY(true);
    columnLayout.append(dimensionGroupSpacing);
  }
  layout.setPixelGLConverter(parentGLCanvas.getPixelGLConverter());
  layout.setBaseElementLayout(columnLayout);
  layoutManager.setTemplate(layout);
  layoutManager.updateLayout();
}

Fixed version (ground truth):
/** 
 * Initialize the layout for the sides of the arch
 * @param columnLayout
 * @param layoutTemplate
 * @param layoutManager
 * @param dimensinoGroupStartIndex
 * @param dimensinoGroupEndIndex
 */
private void initSideLayout(Column columnLayout,LayoutTemplate layoutTemplate,LayoutManager layoutManager,int dimensinoGroupStartIndex,int dimensinoGroupEndIndex){
  layoutTemplate.setPixelGLConverter(parentGLCanvas.getPixelGLConverter());
  layoutTemplate.setBaseElementLayout(columnLayout);
  layoutManager.setTemplate(layoutTemplate);
  columnLayout.setFrameColor(1,1,0,1);
  columnLayout.setBottomUp(true);
  ElementLayout dimensionGroupSpacing=new ElementLayout("String_Node_Str");
  dimensionGroupSpacing.setGrabY(true);
  columnLayout.append(dimensionGroupSpacing);
  DimensionGroupSpacingRenderer dimensionGroupSpacingRenderer=null;
  if (dimensinoGroupStartIndex == 0) {
    dimensionGroupSpacingRenderer=new DimensionGroupSpacingRenderer(null,connectionRenderer,null,null,this);
  }
 else {
    dimensionGroupSpacingRenderer=new DimensionGroupSpacingRenderer(null,connectionRenderer,null,dimensionGroupManager.getDimensionGroups().get(dimensionGroupManager.getCenterGroupStartIndex()),this);
  }
  dimensionGroupSpacing.setRenderer(dimensionGroupSpacingRenderer);
  dimensionGroupSpacingRenderer.setVertical(false);
  dimensionGroupSpacingRenderer.setLineLength(archSideThickness);
  for (int dimensionGroupIndex=dimensinoGroupStartIndex; dimensionGroupIndex < dimensinoGroupEndIndex; dimensionGroupIndex++) {
    DimensionGroup group=dimensionGroupManager.getDimensionGroups().get(dimensionGroupIndex);
    group.getLayout().setAbsoluteSizeY(archSideThickness);
    group.setArchHeight(-1);
    columnLayout.append(group.getLayout());
    group.setCollapsed(true);
    dimensionGroupSpacing=new ElementLayout("String_Node_Str");
    dimensionGroupSpacing.setGrabY(true);
    dimensionGroupSpacingRenderer=new DimensionGroupSpacingRenderer(null,null,group,null,this);
    columnLayout.append(dimensionGroupSpacing);
    dimensionGroupSpacing.setRenderer(dimensionGroupSpacingRenderer);
    dimensionGroupSpacingRenderer.setVertical(false);
    dimensionGroupSpacingRenderer.setLineLength(archSideThickness);
  }
  layoutManager.updateLayout();
}