Program: 29807
Project: 29807
Buggy source:
private String generateUsageText(){
  StringBuilder usageText=new StringBuilder();
  usageText.append(strings.get("String_Node_Str",strings.get("String_Node_Str")));
  usageText.append("String_Node_Str");
  usageText.append(getName());
  int len=usageText.length();
  StringBuilder optText=new StringBuilder();
  String lsep=System.getProperty("String_Node_Str");
  for (  ParamModel opt : usageOptions()) {
    optText.setLength(0);
    final String optName=lc(opt.getName());
    if (optName.equals("String_Node_Str"))     continue;
    if (optName.startsWith("String_Node_Str"))     continue;
    if (opt.getParam().password())     continue;
    if (opt.getParam().obsolete())     continue;
    if (opt.getParam().primary())     continue;
    boolean optional=opt.getParam().optional();
    String defValue=opt.getParam().defaultValue();
    if (optional)     optText.append("String_Node_Str");
    String sn=opt.getParam().shortName();
    if (ok(sn))     optText.append('-').append(sn).append('|');
    optText.append("String_Node_Str").append(optName);
    if (opt.getType() == Boolean.class || opt.getType() == boolean.class) {
      if (ok(defValue) && Boolean.parseBoolean(defValue))       defValue="String_Node_Str";
 else       defValue="String_Node_Str";
      optText.append("String_Node_Str").append(optName);
      optText.append(strings.get("String_Node_Str",defValue));
      optText.append("String_Node_Str");
    }
 else {
      if (ok(defValue)) {
        optText.append("String_Node_Str").append(optName);
        optText.append(strings.get("String_Node_Str",defValue));
        optText.append('>');
      }
 else       optText.append("String_Node_Str").append(optName).append('>');
    }
    if (optional)     optText.append("String_Node_Str");
    if (len + 1 + optText.length() > 80) {
      usageText.append(lsep).append('\t');
      len=8;
    }
 else {
      usageText.append(' ');
      len++;
    }
    usageText.append(optText);
    len+=optText.length();
  }
  String helpText="String_Node_Str";
  if (len + 1 + helpText.length() > 80) {
    usageText.append(lsep).append('\t');
    len=8;
  }
 else {
    usageText.append(' ');
    len++;
  }
  usageText.append(helpText);
  len+=helpText.length();
  optText.setLength(0);
  ParamModel operandParam=getOperandModel();
  String opname=operandParam != null ? lc(operandParam.getName()) : null;
  if (!ok(opname))   opname="String_Node_Str";
  int operandMin=0;
  int operandMax=0;
  if (operandParam != null) {
    operandMin=operandParam.getParam().optional() ? 0 : 1;
    operandMax=operandParam.getParam().multiple() ? Integer.MAX_VALUE : 1;
  }
  if (operandMax > 0) {
    if (operandMin == 0) {
      optText.append("String_Node_Str").append(opname);
      if (operandMax > 1)       optText.append("String_Node_Str");
      optText.append("String_Node_Str");
    }
 else {
      optText.append(opname);
      if (operandMax > 1)       optText.append("String_Node_Str");
    }
  }
  if (len + 1 + optText.length() > 80) {
    usageText.append(lsep).append('\t');
    len=8;
  }
 else {
    usageText.append(' ');
    len++;
  }
  usageText.append(optText);
  return usageText.toString();
}

Fixed version (ground truth):
private String generateUsageText(){
  StringBuilder usageText=new StringBuilder();
  usageText.append(strings.get("String_Node_Str",strings.get("String_Node_Str",programOpts.getCommandName())));
  usageText.append("String_Node_Str");
  usageText.append(getName());
  int len=usageText.length();
  StringBuilder optText=new StringBuilder();
  String lsep=System.getProperty("String_Node_Str");
  for (  ParamModel opt : usageOptions()) {
    optText.setLength(0);
    final String optName=lc(opt.getName());
    if (optName.equals("String_Node_Str"))     continue;
    if (optName.startsWith("String_Node_Str"))     continue;
    if (opt.getParam().password())     continue;
    if (opt.getParam().obsolete())     continue;
    if (opt.getParam().primary())     continue;
    boolean optional=opt.getParam().optional();
    String defValue=opt.getParam().defaultValue();
    if (optional)     optText.append("String_Node_Str");
    String sn=opt.getParam().shortName();
    if (ok(sn))     optText.append('-').append(sn).append('|');
    optText.append("String_Node_Str").append(optName);
    if (opt.getType() == Boolean.class || opt.getType() == boolean.class) {
      if (ok(defValue) && Boolean.parseBoolean(defValue))       defValue="String_Node_Str";
 else       defValue="String_Node_Str";
      optText.append("String_Node_Str").append(optName);
      optText.append(strings.get("String_Node_Str",defValue));
      optText.append("String_Node_Str");
    }
 else {
      if (ok(defValue)) {
        optText.append("String_Node_Str").append(optName);
        optText.append(strings.get("String_Node_Str",defValue));
        optText.append('>');
      }
 else       optText.append("String_Node_Str").append(optName).append('>');
    }
    if (optional)     optText.append("String_Node_Str");
    if (len + 1 + optText.length() > 80) {
      usageText.append(lsep).append('\t');
      len=8;
    }
 else {
      usageText.append(' ');
      len++;
    }
    usageText.append(optText);
    len+=optText.length();
  }
  String helpText="String_Node_Str";
  if (len + 1 + helpText.length() > 80) {
    usageText.append(lsep).append('\t');
    len=8;
  }
 else {
    usageText.append(' ');
    len++;
  }
  usageText.append(helpText);
  len+=helpText.length();
  optText.setLength(0);
  ParamModel operandParam=getOperandModel();
  String opname=operandParam != null ? lc(operandParam.getName()) : null;
  if (!ok(opname))   opname="String_Node_Str";
  int operandMin=0;
  int operandMax=0;
  if (operandParam != null) {
    operandMin=operandParam.getParam().optional() ? 0 : 1;
    operandMax=operandParam.getParam().multiple() ? Integer.MAX_VALUE : 1;
  }
  if (operandMax > 0) {
    if (operandMin == 0) {
      optText.append("String_Node_Str").append(opname);
      if (operandMax > 1)       optText.append("String_Node_Str");
      optText.append("String_Node_Str");
    }
 else {
      optText.append(opname);
      if (operandMax > 1)       optText.append("String_Node_Str");
    }
  }
  if (len + 1 + optText.length() > 80) {
    usageText.append(lsep).append('\t');
    len=8;
  }
 else {
    usageText.append(' ');
    len++;
  }
  usageText.append(optText);
  return usageText.toString();
}