Program: 85445
Project: 85445
Buggy source:
/** 
 * Generates a random value for a field. Return "true" for boolean type. Returned values are used in junit tests to create new values of the appropriate type for testing.
 * @return a random value
 * @throws XDocletException
 */
public String randomValueForSetter() throws XDocletException {
  Properties pros=new Properties();
  pros.put("String_Node_Str","String_Node_Str");
  String mtype=super.methodType(pros);
  StringBuffer result=new StringBuffer();
  if ("String_Node_Str".equals(mtype)) {
    result.append("String_Node_Str" + (int)((Math.random() * Integer.MAX_VALUE)) + "String_Node_Str");
  }
 else   if ("String_Node_Str".equals(mtype)) {
    result.append("String_Node_Str" + (int)((Math.random() * Integer.MAX_VALUE)));
  }
 else   if ("String_Node_Str".equals(mtype)) {
    result.append("String_Node_Str" + (float)((Math.random() * Float.MAX_VALUE)) + "String_Node_Str");
  }
 else   if ("String_Node_Str".equals(mtype)) {
    result.append("String_Node_Str" + (float)((Math.random() * Float.MAX_VALUE)));
  }
 else   if ("String_Node_Str".equals(mtype)) {
    result.append("String_Node_Str" + (long)((Math.random() * Integer.MAX_VALUE)) + "String_Node_Str");
  }
 else   if ("String_Node_Str".equals(mtype)) {
    result.append((long)((Math.random() * Integer.MAX_VALUE)));
  }
 else   if ("String_Node_Str".equals(mtype)) {
    result.append("String_Node_Str" + (double)((Math.random() * Double.MAX_VALUE)) + "String_Node_Str");
  }
 else   if ("String_Node_Str".equals(mtype)) {
    result.append((double)((Math.random() * Double.MAX_VALUE)));
  }
 else   if ("String_Node_Str".equals(mtype)) {
    result.append("String_Node_Str" + (short)((Math.random() * Short.MAX_VALUE)) + "String_Node_Str");
  }
 else   if ("String_Node_Str".equals(mtype)) {
    result.append("String_Node_Str" + (short)((Math.random() * Short.MAX_VALUE)));
  }
 else   if ("String_Node_Str".equals(mtype)) {
    result.append("String_Node_Str" + (byte)((Math.random() * Byte.MAX_VALUE)) + "String_Node_Str");
  }
 else   if ("String_Node_Str".equals(mtype)) {
    result.append("String_Node_Str" + (byte)((Math.random() * Byte.MAX_VALUE)));
  }
 else   if ("String_Node_Str".equals(mtype)) {
    result.append("String_Node_Str");
  }
 else   if ("String_Node_Str".equals(mtype)) {
    result.append("String_Node_Str");
  }
 else   if ("String_Node_Str".equals(mtype)) {
    result.append("String_Node_Str" + getDate(new Date()) + "String_Node_Str");
  }
 else   if ("String_Node_Str".equals(mtype)) {
    result.append("String_Node_Str" + new Timestamp(new Date().getTime()).toString() + "String_Node_Str");
  }
 else   if ("String_Node_Str".equalsIgnoreCase(super.propertyName())) {
    result.append("String_Node_Str" + super.propertyName() + (int)((Math.random() * Integer.MAX_VALUE))+ "String_Node_Str");
  }
 else   if ("String_Node_Str".equals(mtype)) {
    result.append(generateStringValue());
  }
 else {
    throw new XDocletException("String_Node_Str" + mtype);
  }
  return result.toString();
}

Fixed version (ground truth):
/** 
 * Generates a random value for a field. Return "true" for boolean type. Returned values are used in junit tests to create new values of the appropriate type for testing.
 * @return a random value
 * @throws XDocletException
 */
public String randomValueForSetter() throws XDocletException {
  Properties pros=new Properties();
  pros.put("String_Node_Str","String_Node_Str");
  String mtype=super.methodType(pros);
  StringBuffer result=new StringBuffer();
  if ("String_Node_Str".equals(mtype)) {
    result.append("String_Node_Str" + (int)((Math.random() * Integer.MAX_VALUE)) + "String_Node_Str");
  }
 else   if ("String_Node_Str".equals(mtype)) {
    result.append("String_Node_Str" + (int)((Math.random() * Integer.MAX_VALUE)));
  }
 else   if ("String_Node_Str".equals(mtype)) {
    result.append("String_Node_Str" + (float)((Math.random() * Float.MAX_VALUE)) + "String_Node_Str");
  }
 else   if ("String_Node_Str".equals(mtype)) {
    result.append("String_Node_Str" + (float)((Math.random() * Float.MAX_VALUE)));
  }
 else   if ("String_Node_Str".equals(mtype)) {
    result.append("String_Node_Str" + (long)((Math.random() * Integer.MAX_VALUE)) + "String_Node_Str");
  }
 else   if ("String_Node_Str".equals(mtype)) {
    result.append((long)((Math.random() * Integer.MAX_VALUE)));
  }
 else   if ("String_Node_Str".equals(mtype)) {
    result.append("String_Node_Str" + (double)((Math.random() * Double.MAX_VALUE)) + "String_Node_Str");
  }
 else   if ("String_Node_Str".equals(mtype)) {
    result.append((double)((Math.random() * Double.MAX_VALUE)));
  }
 else   if ("String_Node_Str".equals(mtype)) {
    result.append("String_Node_Str" + (short)((Math.random() * Short.MAX_VALUE)) + "String_Node_Str");
  }
 else   if ("String_Node_Str".equals(mtype)) {
    result.append("String_Node_Str" + (short)((Math.random() * Short.MAX_VALUE)));
  }
 else   if ("String_Node_Str".equals(mtype)) {
    result.append("String_Node_Str" + (byte)((Math.random() * Byte.MAX_VALUE)) + "String_Node_Str");
  }
 else   if ("String_Node_Str".equals(mtype)) {
    result.append("String_Node_Str" + (byte)((Math.random() * Byte.MAX_VALUE)));
  }
 else   if ("String_Node_Str".equals(mtype)) {
    result.append("String_Node_Str");
  }
 else   if ("String_Node_Str".equals(mtype)) {
    result.append("String_Node_Str");
  }
 else   if ("String_Node_Str".equals(mtype)) {
    result.append("String_Node_Str" + getDate(new Date()) + "String_Node_Str");
  }
 else   if ("String_Node_Str".equals(mtype)) {
    result.append("String_Node_Str" + new Timestamp(new Date().getTime()).toString() + "String_Node_Str");
  }
 else   if ("String_Node_Str".equalsIgnoreCase(super.propertyName())) {
    result.append("String_Node_Str" + super.propertyName() + (int)((Math.random() * Integer.MAX_VALUE))+ "String_Node_Str");
  }
 else {
    result.append(generateStringValue());
  }
  return result.toString();
}