Program: 135921
Project: 135921
Buggy source:
private void GenProcess(AST.Process ast,String context) throws PcalTLAGenException {
  StringBuffer ns=new StringBuffer();
  Vector nsV=new Vector();
  boolean isSet=true;
  if (ast.isEq) {
    self="String_Node_Str";
    Vector sv=ast.id.toStringVector();
    for (int v=0; v < sv.size(); v++)     self=self + ((String)sv.elementAt(v));
    isSet=false;
  }
 else   self="String_Node_Str";
  int nsC=ast.name.length() + ((isSet) ? "String_Node_Str".length() : 0) + "String_Node_Str".length();
  if (isSet) {
    nextStepSelf.addElement(ast.name + "String_Node_Str");
  }
 else   nextStep.addElement(ast.name);
  for (int i=0; i < ast.body.size(); i++) {
    AST.LabeledStmt stmt=(AST.LabeledStmt)ast.body.elementAt(i);
    if ((ns.length() + stmt.label.length() + "String_Node_Str".length()+ ((isSet) ? "String_Node_Str".length() : 0)) > wrapColumn - nsC - "String_Node_Str".length()) {
      nsV.addElement(ns.toString());
      ns=new StringBuffer();
    }
    if (ns.length() > 0)     ns.append("String_Node_Str");
    ns.append(stmt.label);
    if (isSet)     ns.append("String_Node_Str");
    GenLabeledStmt(stmt,"String_Node_Str");
  }
  nsV.addElement(ns.toString());
  ns=new StringBuffer();
  ns.append(ast.name);
  if (isSet)   ns.append("String_Node_Str");
  ns.append("String_Node_Str");
  ns.append((String)nsV.elementAt(0));
  tlacode.addElement(ns.toString());
  for (int i=1; i < nsV.size(); i++) {
    ns=new StringBuffer(NSpaces(nsC + 2));
    ns.append("String_Node_Str");
    ns.append((String)nsV.elementAt(i));
    tlacode.addElement(ns.toString());
  }
  tlacode.addElement("String_Node_Str");
}

Fixed version (ground truth):
private void GenProcess(AST.Process ast,String context) throws PcalTLAGenException {
  StringBuffer ns=new StringBuffer();
  Vector nsV=new Vector();
  boolean isSet=true;
  if (ast.isEq) {
    self=ast.id;
    selfIsSelf=false;
    isSet=false;
  }
 else {
    self=selfAsExpr();
    selfIsSelf=true;
  }
  int nsC=ast.name.length() + ((isSet) ? "String_Node_Str".length() : 0) + "String_Node_Str".length();
  if (isSet) {
    nextStepSelf.addElement(ast.name + "String_Node_Str");
  }
 else   nextStep.addElement(ast.name);
  for (int i=0; i < ast.body.size(); i++) {
    AST.LabeledStmt stmt=(AST.LabeledStmt)ast.body.elementAt(i);
    if ((ns.length() + stmt.label.length() + "String_Node_Str".length()+ ((isSet) ? "String_Node_Str".length() : 0)) > wrapColumn - nsC - "String_Node_Str".length()) {
      nsV.addElement(ns.toString());
      ns=new StringBuffer();
    }
    if (ns.length() > 0)     ns.append("String_Node_Str");
    ns.append(stmt.label);
    if (isSet)     ns.append("String_Node_Str");
    GenLabeledStmt(stmt,"String_Node_Str");
  }
  nsV.addElement(ns.toString());
  ns=new StringBuffer();
  ns.append(ast.name);
  if (isSet)   ns.append("String_Node_Str");
  ns.append("String_Node_Str");
  ns.append((String)nsV.elementAt(0));
  tlacode.addElement(ns.toString());
  for (int i=1; i < nsV.size(); i++) {
    ns=new StringBuffer(NSpaces(nsC + 2));
    ns.append("String_Node_Str");
    ns.append((String)nsV.elementAt(i));
    tlacode.addElement(ns.toString());
  }
  tlacode.addElement("String_Node_Str");
}