Program: 64742
Project: 64742
Buggy source:
public Problem getProblem(String name,Properties params) throws JMException {
  String base="String_Node_Str";
  if (name.substring(0,name.length() - 1).startsWith("String_Node_Str"))   base+="String_Node_Str";
 else   if (name.substring(0,name.length() - 1).startsWith("String_Node_Str"))   base+="String_Node_Str";
 else   if (name.substring(0,name.length() - 1).startsWith("String_Node_Str"))   base+="String_Node_Str";
 else   if (name.substring(0,name.length() - 3).startsWith("String_Node_Str"))   base+="String_Node_Str";
 else   if (name.substring(0,name.length() - 3).startsWith("String_Node_Str"))   base+="String_Node_Str";
 else   if (name.substring(0,name.length() - 4).startsWith("String_Node_Str"))   base+="String_Node_Str";
 else   if (name.substring(0,name.length() - 3).startsWith("String_Node_Str"))   base+="String_Node_Str";
 else   if (name.substring(0,name.length() - 4).startsWith("String_Node_Str"))   base+="String_Node_Str";
 else   if (name.substring(0,name.length() - 5).startsWith("String_Node_Str"))   base+="String_Node_Str";
  try {
    Class problemClass=Class.forName(base + name);
    Constructor constructors=problemClass.getConstructor(Properties.class);
    Problem problem=(Problem)constructors.newInstance(params);
    return problem;
  }
 catch (  Exception e) {
    e.printStackTrace();
    Configuration.logger_.severe("String_Node_Str" + "String_Node_Str" + name + "String_Node_Str"+ "String_Node_Str");
    throw new JMException("String_Node_Str" + name + "String_Node_Str");
  }
}

Fixed version (ground truth):
/** 
 * Creates an object representing a problem
 * @param name Name of the problem
 * @param params Parameters characterizing the problem
 * @return The object representing the problem
 * @throws JMException 
 */
public Problem getProblem(String name,Object[] params) throws JMException {
  String base="String_Node_Str";
  if (name.substring(0,name.length() - 1).equalsIgnoreCase("String_Node_Str"))   base+="String_Node_Str";
 else   if (name.substring(0,name.length() - 1).equalsIgnoreCase("String_Node_Str"))   base+="String_Node_Str";
 else   if (name.substring(0,name.length() - 1).equalsIgnoreCase("String_Node_Str"))   base+="String_Node_Str";
 else   if ((name.length() > 3) && (name.substring(0,name.length() - 3).equalsIgnoreCase("String_Node_Str")))   base+="String_Node_Str";
 else   if ((name.length() > 3) && (name.substring(0,name.length() - 3).equalsIgnoreCase("String_Node_Str")))   base+="String_Node_Str";
 else   if ((name.length() > 4) && (name.substring(0,name.length() - 4).equalsIgnoreCase("String_Node_Str")))   base+="String_Node_Str";
 else   if ((name.length() > 3) && (name.substring(0,name.length() - 3).equalsIgnoreCase("String_Node_Str")))   base+="String_Node_Str";
 else   if ((name.length() > 4) && (name.substring(0,name.length() - 4).equalsIgnoreCase("String_Node_Str")))   base+="String_Node_Str";
 else   if ((name.length() > 5) && (name.substring(0,name.length() - 5)).equalsIgnoreCase("String_Node_Str"))   base+="String_Node_Str";
  try {
    Class problemClass=Class.forName(base + name);
    Constructor[] constructors=problemClass.getConstructors();
    int i=0;
    while ((i < constructors.length) && (constructors[i].getParameterTypes().length != params.length)) {
      i++;
    }
    Problem problem=(Problem)constructors[i].newInstance(params);
    return problem;
  }
 catch (  Exception e) {
    Configuration.logger_.severe("String_Node_Str" + "String_Node_Str" + name + "String_Node_Str"+ "String_Node_Str");
    throw new JMException("String_Node_Str" + name + "String_Node_Str");
  }
}