Program: 24572
Project: 24572
Buggy source:
private void setBeanProps(Object obj,Properties props) throws NoSuchMethodException, IllegalAccessException, java.lang.reflect.InvocationTargetException, IntrospectionException, SchedulerConfigException {
  props.remove("String_Node_Str");
  BeanInfo bi=Introspector.getBeanInfo(obj.getClass());
  PropertyDescriptor[] propDescs=bi.getPropertyDescriptors();
  PropertiesParser pp=new PropertiesParser(props);
  java.util.Enumeration<Object> keys=props.keys();
  while (keys.hasMoreElements()) {
    String name=(String)keys.nextElement();
    String c=name.substring(0,1).toUpperCase(Locale.US);
    String methName="String_Node_Str" + c + name.substring(1);
    java.lang.reflect.Method setMeth=getSetMethod(methName,propDescs);
    try {
      if (setMeth == null) {
        throw new NoSuchMethodException("String_Node_Str" + name + "String_Node_Str");
      }
      Class<?>[] params=setMeth.getParameterTypes();
      if (params.length != 1) {
        throw new NoSuchMethodException("String_Node_Str" + name + "String_Node_Str");
      }
      PropertiesParser refProps=pp;
      String refName=pp.getStringProperty(name);
      if (refName != null && refName.startsWith("String_Node_Str")) {
        refName=refName.substring(2);
        refProps=cfg;
      }
 else       refName=name;
      if (params[0].equals(int.class)) {
        setMeth.invoke(obj,new Object[]{new Integer(refProps.getIntProperty(refName))});
      }
 else       if (params[0].equals(long.class)) {
        setMeth.invoke(obj,new Object[]{new Long(refProps.getLongProperty(refName))});
      }
 else       if (params[0].equals(float.class)) {
        setMeth.invoke(obj,new Object[]{new Float(refProps.getFloatProperty(refName))});
      }
 else       if (params[0].equals(double.class)) {
        setMeth.invoke(obj,new Object[]{new Double(refProps.getDoubleProperty(refName))});
      }
 else       if (params[0].equals(boolean.class)) {
        setMeth.invoke(obj,new Object[]{new Boolean(refProps.getBooleanProperty(refName))});
      }
 else       if (params[0].equals(String.class)) {
        setMeth.invoke(obj,new Object[]{refProps.getStringProperty(refName)});
      }
 else {
        throw new NoSuchMethodException("String_Node_Str" + name + "String_Node_Str");
      }
    }
 catch (    NumberFormatException nfe) {
      throw new SchedulerConfigException("String_Node_Str" + name + "String_Node_Str"+ nfe.toString());
    }
  }
}

Fixed version (ground truth):
private void setBeanProps(Object obj,Properties props) throws NoSuchMethodException, IllegalAccessException, java.lang.reflect.InvocationTargetException, IntrospectionException, SchedulerConfigException {
  props.remove("String_Node_Str");
  BeanInfo bi=Introspector.getBeanInfo(obj.getClass());
  PropertyDescriptor[] propDescs=bi.getPropertyDescriptors();
  PropertiesParser pp=new PropertiesParser(props);
  java.util.Enumeration<Object> keys=props.keys();
  while (keys.hasMoreElements()) {
    String name=(String)keys.nextElement();
    String c=name.substring(0,1).toUpperCase(Locale.US);
    String methName="String_Node_Str" + c + name.substring(1);
    java.lang.reflect.Method setMeth=getSetMethod(methName,propDescs);
    try {
      if (setMeth == null) {
        throw new NoSuchMethodException("String_Node_Str" + name + "String_Node_Str");
      }
      Class<?>[] params=setMeth.getParameterTypes();
      if (params.length != 1) {
        throw new NoSuchMethodException("String_Node_Str" + name + "String_Node_Str");
      }
      PropertiesParser refProps=pp;
      String refName=pp.getStringProperty(name);
      if (refName != null && refName.startsWith("String_Node_Str")) {
        refName=refName.substring(2);
        refProps=cfg;
      }
 else       refName=name;
      if (params[0].equals(int.class)) {
        setMeth.invoke(obj,new Object[]{Integer.valueOf(refProps.getIntProperty(refName))});
      }
 else       if (params[0].equals(long.class)) {
        setMeth.invoke(obj,new Object[]{Long.valueOf(refProps.getLongProperty(refName))});
      }
 else       if (params[0].equals(float.class)) {
        setMeth.invoke(obj,new Object[]{Float.valueOf(refProps.getFloatProperty(refName))});
      }
 else       if (params[0].equals(double.class)) {
        setMeth.invoke(obj,new Object[]{Double.valueOf(refProps.getDoubleProperty(refName))});
      }
 else       if (params[0].equals(boolean.class)) {
        setMeth.invoke(obj,new Object[]{Boolean.valueOf(refProps.getBooleanProperty(refName))});
      }
 else       if (params[0].equals(String.class)) {
        setMeth.invoke(obj,new Object[]{refProps.getStringProperty(refName)});
      }
 else {
        throw new NoSuchMethodException("String_Node_Str" + name + "String_Node_Str");
      }
    }
 catch (    NumberFormatException nfe) {
      throw new SchedulerConfigException("String_Node_Str" + name + "String_Node_Str"+ nfe.toString());
    }
  }
}