Program: 58068
Project: 58068
Buggy source:
private void initLayoutCenter(){
  archWidth=viewFrustum.getWidth() * ARCH_STAND_WIDTH_PERCENT;
  archInnerWidth=viewFrustum.getWidth() * (ARCH_STAND_WIDTH_PERCENT + 0.05f);
  archTopY=viewFrustum.getHeight() * ARCH_TOP_PERCENT;
  archBottomY=viewFrustum.getHeight() * ARCH_BOTTOM_PERCENT;
  archHeight=(ARCH_TOP_PERCENT - ARCH_BOTTOM_PERCENT) * viewFrustum.getHeight();
  float centerLayoutWidth=viewFrustum.getWidth() - 2 * archInnerWidth;
  float spacerWidth=(centerLayoutWidth - (centerGroupEndIndex - centerGroupStartIndex) * archHeight) / (centerGroupEndIndex - centerGroupStartIndex);
  centerRowLayout=new Row("String_Node_Str");
  centerRowLayout.setFrameColor(1,1,0,1);
  centerRowLayout.setDebug(false);
  ElementLayout dimensionGroupSpacing=new ElementLayout("String_Node_Str");
  DimensionGroupSpacingRenderer dimensionGroupSpacingRenderer=new DimensionGroupSpacingRenderer();
  dimensionGroupSpacing.setRenderer(dimensionGroupSpacingRenderer);
  dimensionGroupSpacing.setPixelGLConverter(parentGLCanvas.getPixelGLConverter());
  dimensionGroupSpacing.setAbsoluteSizeX(spacerWidth);
  centerRowLayout.appendElement(dimensionGroupSpacing);
  for (int dimensionGroupIndex=centerGroupStartIndex; dimensionGroupIndex < centerGroupEndIndex; dimensionGroupIndex++) {
    DimensionGroup group=dimensionGroups.get(dimensionGroupIndex);
    group.setCollapsed(false);
    group.getLayout().setAbsoluteSizeX(archHeight);
    group.getLayout().setRatioSizeY(1);
    group.setArchBounds(archHeight,ARCH_BOTTOM_PERCENT,ARCH_TOP_PERCENT - ARCH_BOTTOM_PERCENT,ARCH_BOTTOM_PERCENT);
    centerRowLayout.appendElement(group.getLayout());
    dimensionGroupSpacing=new ElementLayout("String_Node_Str");
    dimensionGroupSpacingRenderer=new DimensionGroupSpacingRenderer();
    dimensionGroupSpacing.setRenderer(dimensionGroupSpacingRenderer);
    dimensionGroupSpacing.setPixelGLConverter(parentGLCanvas.getPixelGLConverter());
    dimensionGroupSpacing.setAbsoluteSizeX(spacerWidth);
    centerRowLayout.appendElement(dimensionGroupSpacing);
  }
  centerLayout=new LayoutTemplate();
  centerLayout.setPixelGLConverter(parentGLCanvas.getPixelGLConverter());
  centerLayout.setBaseElementLayout(centerRowLayout);
  ViewFrustum centerArchFrustum=new ViewFrustum(viewFrustum.getProjectionMode(),0,centerLayoutWidth,0,viewFrustum.getHeight(),0,1);
  centerLayoutManager=new LayoutManager(centerArchFrustum);
  centerLayoutManager.setTemplate(centerLayout);
  if (uninitializedDimensionGroups.size() == 0)   centerLayoutManager.updateLayout();
}

Fixed version (ground truth):
private void initLayoutCenter(){
  sideArchThickness=viewFrustum.getWidth() * ARCH_STAND_WIDTH_PERCENT;
  archInnerWidth=viewFrustum.getWidth() * (ARCH_STAND_WIDTH_PERCENT + 0.05f);
  archTopY=viewFrustum.getHeight() * ARCH_TOP_PERCENT;
  archBottomY=viewFrustum.getHeight() * ARCH_BOTTOM_PERCENT;
  archHeight=(ARCH_TOP_PERCENT - ARCH_BOTTOM_PERCENT) * viewFrustum.getHeight();
  float centerLayoutWidth=viewFrustum.getWidth() - 2 * archInnerWidth;
  float spacerWidth=(centerLayoutWidth - (rightGroupStartIndex - centerGroupStartIndex) * archHeight) / (rightGroupStartIndex - centerGroupStartIndex);
  centerRowLayout=new Row("String_Node_Str");
  centerRowLayout.setFrameColor(1,1,0,1);
  centerRowLayout.setDebug(false);
  ElementLayout dimensionGroupSpacing=new ElementLayout("String_Node_Str");
  DimensionGroupSpacingRenderer dimensionGroupSpacingRenderer=new DimensionGroupSpacingRenderer();
  dimensionGroupSpacing.setRenderer(dimensionGroupSpacingRenderer);
  dimensionGroupSpacing.setPixelGLConverter(parentGLCanvas.getPixelGLConverter());
  dimensionGroupSpacing.setAbsoluteSizeX(spacerWidth);
  centerRowLayout.appendElement(dimensionGroupSpacing);
  for (int dimensionGroupIndex=centerGroupStartIndex; dimensionGroupIndex < rightGroupStartIndex; dimensionGroupIndex++) {
    DimensionGroup group=dimensionGroups.get(dimensionGroupIndex);
    group.setCollapsed(false);
    group.getLayout().setAbsoluteSizeX(archHeight);
    group.getLayout().setRatioSizeY(1);
    group.setArchBounds(ARCH_BOTTOM_PERCENT,ARCH_TOP_PERCENT - ARCH_BOTTOM_PERCENT,ARCH_BOTTOM_PERCENT);
    centerRowLayout.appendElement(group.getLayout());
    dimensionGroupSpacing=new ElementLayout("String_Node_Str");
    dimensionGroupSpacingRenderer=new DimensionGroupSpacingRenderer();
    dimensionGroupSpacing.setRenderer(dimensionGroupSpacingRenderer);
    dimensionGroupSpacing.setPixelGLConverter(parentGLCanvas.getPixelGLConverter());
    dimensionGroupSpacing.setAbsoluteSizeX(spacerWidth);
    centerRowLayout.appendElement(dimensionGroupSpacing);
  }
  centerLayout=new LayoutTemplate();
  centerLayout.setPixelGLConverter(parentGLCanvas.getPixelGLConverter());
  centerLayout.setBaseElementLayout(centerRowLayout);
  ViewFrustum centerArchFrustum=new ViewFrustum(viewFrustum.getProjectionMode(),0,centerLayoutWidth,0,viewFrustum.getHeight(),0,1);
  centerLayoutManager=new LayoutManager(centerArchFrustum);
  centerLayoutManager.setTemplate(centerLayout);
  centerLayoutManager.updateLayout();
}