Program: 161788
Project: 161788
Buggy source:
@Override protected void toSVG(RRDiagramToSVG rrDiagramToSVG,int xOffset,int yOffset,StringBuilder sb){
  LayoutInfo layoutInfo1=rrElement.getLayoutInfo();
  int width1=layoutInfo1.getWidth();
  int maxWidth=width1;
  int yOffset2=yOffset;
  LayoutInfo layoutInfo=getLayoutInfo();
  int connectorOffset=layoutInfo.getConnectorOffset();
  int y1=yOffset;
  int loopOffset=0;
  int loopWidth=0;
  if (loopElement != null) {
    LayoutInfo layoutInfo2=loopElement.getLayoutInfo();
    loopWidth=layoutInfo2.getWidth();
    maxWidth=Math.max(maxWidth,loopWidth);
    loopOffset=xOffset + 20 + (maxWidth - loopWidth) / 2;
    loopElement.toSVG(rrDiagramToSVG,loopOffset,yOffset,sb);
    yOffset2+=5 + layoutInfo2.getHeight();
    y1+=layoutInfo2.getConnectorOffset();
  }
 else {
    yOffset2+=15;
    y1+=5;
  }
  rrElement.toSVG(rrDiagramToSVG,xOffset + 20 + (maxWidth - width1) / 2,yOffset2,sb);
  int x1=xOffset + 10;
  int x2=xOffset + 20 + maxWidth+ 10+ cardinalitiesWidth;
  int y2=yOffset + connectorOffset;
  sb.append("String_Node_Str").append(x1 - 10).append("String_Node_Str").append(y2).append("String_Node_Str").append(x1 + 10).append("String_Node_Str").append(y2).append("String_Node_Str");
  sb.append("String_Node_Str");
  sb.append("String_Node_Str").append(x1 + 5).append("String_Node_Str").append(y2);
  sb.append("String_Node_Str").append(x1).append("String_Node_Str").append(y2).append("String_Node_Str").append(x1).append("String_Node_Str").append(y2 - 5);
  sb.append("String_Node_Str").append(y1 + 5);
  sb.append("String_Node_Str").append(x1).append("String_Node_Str").append(y1).append("String_Node_Str").append(x1 + 5).append("String_Node_Str").append(y1);
  if (loopElement != null) {
    sb.append("String_Node_Str").append(loopOffset);
    sb.append("String_Node_Str").append(loopOffset + loopWidth).append("String_Node_Str").append(y1);
    sb.append("String_Node_Str").append(x2 - 5);
  }
 else {
    sb.append("String_Node_Str").append(x2 - 5);
  }
  sb.append("String_Node_Str").append(x2).append("String_Node_Str").append(y1).append("String_Node_Str").append(x2).append("String_Node_Str").append(y1 + 5);
  sb.append("String_Node_Str").append(y2 - 5);
  sb.append("String_Node_Str").append(x2).append("String_Node_Str").append(y2).append("String_Node_Str").append(x2 - 5).append("String_Node_Str").append(y2);
  sb.append("String_Node_Str");
  sb.append("String_Node_Str").append(x2 - cardinalitiesWidth - 10).append("String_Node_Str").append(y2).append("String_Node_Str").append(xOffset + layoutInfo.getWidth()).append("String_Node_Str").append(y2).append("String_Node_Str");
  if (cardinalitiesText != null) {
    sb.append("String_Node_Str").append(x2 - cardinalitiesWidth).append("String_Node_Str").append(y2 - fontOffset - 5).append("String_Node_Str").append(cardinalitiesText).append("String_Node_Str");
  }
}

Fixed version (ground truth):
@Override protected void toSVG(RRDiagramToSVG rrDiagramToSVG,int xOffset,int yOffset,StringBuilder sb){
  LayoutInfo layoutInfo1=rrElement.getLayoutInfo();
  int width1=layoutInfo1.getWidth();
  int maxWidth=width1;
  int yOffset2=yOffset;
  LayoutInfo layoutInfo=getLayoutInfo();
  int connectorOffset=layoutInfo.getConnectorOffset();
  int y1=yOffset;
  int loopOffset=0;
  int loopWidth=0;
  if (loopElement != null) {
    LayoutInfo layoutInfo2=loopElement.getLayoutInfo();
    loopWidth=layoutInfo2.getWidth();
    maxWidth=Math.max(maxWidth,loopWidth);
    loopOffset=xOffset + 20 + (maxWidth - loopWidth) / 2;
    loopElement.toSVG(rrDiagramToSVG,loopOffset,yOffset,sb);
    yOffset2+=5 + layoutInfo2.getHeight();
    y1+=layoutInfo2.getConnectorOffset();
  }
 else {
    yOffset2+=15;
    y1+=5;
  }
  rrElement.toSVG(rrDiagramToSVG,xOffset + 20 + (maxWidth - width1) / 2,yOffset2,sb);
  int x1=xOffset + 10;
  int x2=xOffset + 20 + maxWidth+ 10+ cardinalitiesWidth;
  int y2=yOffset + connectorOffset;
  sb.append("String_Node_Str").append(x1 - 10).append("String_Node_Str").append(y2).append("String_Node_Str").append(x1 + 10 + (maxWidth - width1) / 2).append("String_Node_Str").append(y2).append("String_Node_Str");
  sb.append("String_Node_Str");
  sb.append("String_Node_Str").append(x1 + 5).append("String_Node_Str").append(y2);
  sb.append("String_Node_Str").append(x1).append("String_Node_Str").append(y2).append("String_Node_Str").append(x1).append("String_Node_Str").append(y2 - 5);
  sb.append("String_Node_Str").append(y1 + 5);
  sb.append("String_Node_Str").append(x1).append("String_Node_Str").append(y1).append("String_Node_Str").append(x1 + 5).append("String_Node_Str").append(y1);
  if (loopElement != null) {
    sb.append("String_Node_Str").append(loopOffset);
    sb.append("String_Node_Str").append(loopOffset + loopWidth).append("String_Node_Str").append(y1);
    sb.append("String_Node_Str").append(x2 - 5);
  }
 else {
    sb.append("String_Node_Str").append(x2 - 5);
  }
  sb.append("String_Node_Str").append(x2).append("String_Node_Str").append(y1).append("String_Node_Str").append(x2).append("String_Node_Str").append(y1 + 5);
  sb.append("String_Node_Str").append(y2 - 5);
  sb.append("String_Node_Str").append(x2).append("String_Node_Str").append(y2).append("String_Node_Str").append(x2 - 5).append("String_Node_Str").append(y2);
  sb.append("String_Node_Str");
  sb.append("String_Node_Str").append(x2 - cardinalitiesWidth - 10- (maxWidth - width1) / 2).append("String_Node_Str").append(y2).append("String_Node_Str").append(xOffset + layoutInfo.getWidth()).append("String_Node_Str").append(y2).append("String_Node_Str");
  if (cardinalitiesText != null) {
    sb.append("String_Node_Str").append(x2 - cardinalitiesWidth).append("String_Node_Str").append(y2 - fontOffset - 5).append("String_Node_Str").append(cardinalitiesText).append("String_Node_Str");
  }
}