Program: 58046
Project: 58046
Buggy source:
private void renderDimensionGroupConnections(GL2 gl){
  if (relationAnalyzer == null)   return;
  float splineFactor=0.1f * x;
  gl.glLineWidth(1);
  for (  GroupMatch groupMatch : hashGroupID2GroupMatches.values()) {
    GLBrick brick=groupMatch.getBrick();
    float xStart=leftDimGroup.getLayout().getTranslateX() - brick.getLayout().getTranslateX();
    if (groupMatch.getBrick().isInOverviewMode())     continue;
    for (    SubGroupMatch subGroupMatch : groupMatch.getSubGroupMatches()) {
      GLBrick subBrick=subGroupMatch.getBrick();
      if (subGroupMatch.getBrick().isInOverviewMode())       continue;
      float xEnd=x + subBrick.getLayout().getTranslateX() - rightDimGroup.getLayout().getTranslateX();
      if (xStart != 0) {
        connectionRenderer.renderStraightBand(gl,new float[]{xStart,subGroupMatch.getLeftAnchorYTop(),0},new float[]{xStart,subGroupMatch.getLeftAnchorYBottom(),0},new float[]{0,subGroupMatch.getLeftAnchorYTop(),0},new float[]{0,subGroupMatch.getLeftAnchorYBottom(),0},false,splineFactor,0,false,new float[]{0.0f,0.0f,0},0.1f);
      }
      if (xEnd != 0) {
        connectionRenderer.renderStraightBand(gl,new float[]{x,subGroupMatch.getRightAnchorYTop(),0},new float[]{x,subGroupMatch.getRightAnchorYBottom(),0},new float[]{xEnd,subGroupMatch.getRightAnchorYTop(),0},new float[]{xEnd,subGroupMatch.getRightAnchorYBottom(),0},false,splineFactor,0,false,new float[]{0.0f,0.0f,1},0.1f);
      }
      HashMap<SelectionType,Float> hashRatioToSelectionType=subGroupMatch.getHashRatioToSelectionType();
      connectionRenderer.renderSingleBand(gl,new float[]{0,subGroupMatch.getLeftAnchorYTop(),0},new float[]{0,subGroupMatch.getLeftAnchorYBottom(),0},new float[]{x,subGroupMatch.getRightAnchorYTop(),0},new float[]{x,subGroupMatch.getRightAnchorYBottom(),0},false,splineFactor,0,false,new float[]{0.0f,0.0f,0.0f},0.1f);
      for (      SelectionType selectionType : hashRatioToSelectionType.keySet()) {
        float ratio=hashRatioToSelectionType.get(selectionType);
        if (ratio == 0)         continue;
        float leftYDiff=subGroupMatch.getLeftAnchorYTop() - subGroupMatch.getLeftAnchorYBottom();
        float leftYDiffSelection=leftYDiff * ratio;
        float rightYDiff=subGroupMatch.getRightAnchorYTop() - subGroupMatch.getRightAnchorYBottom();
        float rightYDiffSelection=rightYDiff * ratio;
        float[] color=selectionType.getColor();
        color[3]=0.2f;
        connectionRenderer.renderSingleBand(gl,new float[]{0,subGroupMatch.getLeftAnchorYTop(),0},new float[]{0,subGroupMatch.getLeftAnchorYTop() - leftYDiffSelection,0},new float[]{x,subGroupMatch.getRightAnchorYTop(),0},new float[]{x,subGroupMatch.getRightAnchorYTop() - rightYDiffSelection,0},true,splineFactor,0,false,color,0.15f);
        if (xStart != 0) {
          connectionRenderer.renderStraightBand(gl,new float[]{xStart,subGroupMatch.getLeftAnchorYTop(),0},new float[]{xStart,subGroupMatch.getLeftAnchorYBottom(),0},new float[]{0,subGroupMatch.getLeftAnchorYTop(),0},new float[]{0,subGroupMatch.getLeftAnchorYBottom(),0},true,splineFactor,0,false,color,0.5f);
        }
      }
    }
  }
}

Fixed version (ground truth):
private void renderDimensionGroupConnections(GL2 gl){
  if (relationAnalyzer == null)   return;
  float splineFactor=0.1f * x;
  gl.glLineWidth(1);
  for (  GroupMatch groupMatch : hashGroupID2GroupMatches.values()) {
    GLBrick brick=groupMatch.getBrick();
    float xStart=leftDimGroup.getLayout().getTranslateX() - brick.getLayout().getTranslateX();
    if (groupMatch.getBrick().isInOverviewMode())     continue;
    for (    SubGroupMatch subGroupMatch : groupMatch.getSubGroupMatches()) {
      GLBrick subBrick=subGroupMatch.getBrick();
      if (subGroupMatch.getBrick().isInOverviewMode())       continue;
      float xEnd=x + subBrick.getLayout().getTranslateX() - rightDimGroup.getLayout().getTranslateX();
      if (xStart != 0) {
        connectionRenderer.renderStraightBand(gl,new float[]{xStart,subGroupMatch.getLeftAnchorYTop(),0},new float[]{xStart,subGroupMatch.getLeftAnchorYBottom(),0},new float[]{0,subGroupMatch.getLeftAnchorYTop(),0},new float[]{0,subGroupMatch.getLeftAnchorYBottom(),0},false,splineFactor,0,false,new float[]{0.0f,0.0f,0},0.1f);
      }
      if (xEnd != 0) {
        connectionRenderer.renderStraightBand(gl,new float[]{x,subGroupMatch.getRightAnchorYTop(),0},new float[]{x,subGroupMatch.getRightAnchorYBottom(),0},new float[]{xEnd,subGroupMatch.getRightAnchorYTop(),0},new float[]{xEnd,subGroupMatch.getRightAnchorYBottom(),0},false,splineFactor,0,false,new float[]{0.0f,0.0f,0},0.1f);
      }
      HashMap<SelectionType,Float> hashRatioToSelectionType=subGroupMatch.getHashRatioToSelectionType();
      connectionRenderer.renderSingleBand(gl,new float[]{0,subGroupMatch.getLeftAnchorYTop(),0},new float[]{0,subGroupMatch.getLeftAnchorYBottom(),0},new float[]{x,subGroupMatch.getRightAnchorYTop(),0},new float[]{x,subGroupMatch.getRightAnchorYBottom(),0},false,splineFactor,0,false,new float[]{0.0f,0.0f,0.0f},0.1f);
      for (      SelectionType selectionType : hashRatioToSelectionType.keySet()) {
        float ratio=hashRatioToSelectionType.get(selectionType);
        if (ratio == 0)         continue;
        float leftYDiff=subGroupMatch.getLeftAnchorYTop() - subGroupMatch.getLeftAnchorYBottom();
        float leftYDiffSelection=leftYDiff * ratio;
        float rightYDiff=subGroupMatch.getRightAnchorYTop() - subGroupMatch.getRightAnchorYBottom();
        float rightYDiffSelection=rightYDiff * ratio;
        float[] color=selectionType.getColor();
        color[3]=0.2f;
        connectionRenderer.renderSingleBand(gl,new float[]{0,subGroupMatch.getLeftAnchorYTop(),0},new float[]{0,subGroupMatch.getLeftAnchorYTop() - leftYDiffSelection,0},new float[]{x,subGroupMatch.getRightAnchorYTop(),0},new float[]{x,subGroupMatch.getRightAnchorYTop() - rightYDiffSelection,0},true,splineFactor,0,false,color,0.15f);
        if (xStart != 0) {
          connectionRenderer.renderStraightBand(gl,new float[]{xStart,subGroupMatch.getLeftAnchorYTop(),0},new float[]{xStart,subGroupMatch.getLeftAnchorYTop() - leftYDiffSelection,0},new float[]{0,subGroupMatch.getLeftAnchorYTop(),0},new float[]{0,subGroupMatch.getLeftAnchorYTop() - leftYDiffSelection,0},false,splineFactor,0,false,color,0.5f);
        }
        if (xEnd != 0) {
          connectionRenderer.renderStraightBand(gl,new float[]{x,subGroupMatch.getRightAnchorYTop(),0},new float[]{x,subGroupMatch.getRightAnchorYTop() - rightYDiffSelection,0},new float[]{xEnd,subGroupMatch.getRightAnchorYTop(),0},new float[]{xEnd,subGroupMatch.getRightAnchorYTop() - rightYDiffSelection,0},false,splineFactor,0,false,color,0.5f);
        }
      }
    }
  }
}