Program: 4725
Project: 4725
Buggy source:
/** 
 * Dynamically scans this class to load up a HashMap with default values. Used to determine whether or not a value is default at save them (to know if we should save it or not)
 */
private void reflectUponDefaults(){
  Field[] fields=SettingsManager.class.getDeclaredFields();
  String theKey;
  String theValue;
  Class theClass;
  defaultValues=new HashMap(PROPS.size());
  for (int i=0; i < fields.length; i++) {
    if (fields[i].getName().startsWith("String_Node_Str")) {
      theKey=fields[i].getName().substring(8);
      theClass=fields[i].getType();
      try {
        if (theClass == String.class)         theValue=(String)fields[i].get(this);
 else         if (theClass == Boolean.TYPE)         theValue=Boolean.toString(fields[i].getBoolean(this));
 else         if (theClass == Byte.TYPE)         theValue=Byte.toString(fields[i].getByte(this));
 else         if (theClass == Character.TYPE)         theValue=Character.toString(fields[i].getChar(this));
 else         if (theClass == Double.TYPE)         theValue=Double.toString(fields[i].getDouble(this));
 else         if (theClass == Float.TYPE)         theValue=Float.toString(fields[i].getFloat(this));
 else         if (theClass == Integer.TYPE)         theValue=Integer.toString(fields[i].getInt(this));
 else         if (theClass == Long.TYPE)         theValue=Long.toString(fields[i].getLong(this));
 else         if (theClass == Short.TYPE)         theValue=Short.toString(fields[i].getShort(this));
 else         continue;
        defaultValues.put(theKey,theValue);
      }
 catch (      Exception ignored) {
      }
    }
  }
}

Fixed version (ground truth):
/** 
 * Dynamically scans this class to load up a HashMap with default values. Used to determine whether or not a value is default at save them (to know if we should save it or not)
 */
private void reflectUponDefaults(){
  Field[] fields=SettingsManager.class.getDeclaredFields();
  String theKey;
  String theValue;
  Class theClass;
  defaultValues=new HashMap(PROPS.size());
  for (int i=0; i < fields.length; i++) {
    if (fields[i].getName().startsWith("String_Node_Str")) {
      theKey=fields[i].getName().substring(8);
      theClass=fields[i].getType();
      try {
        if (theClass == String.class)         theValue=(String)fields[i].get(this);
 else         if (theClass == Boolean.TYPE)         theValue=new Boolean(fields[i].getBoolean(this)).toString();
 else         if (theClass == Byte.TYPE)         theValue=Byte.toString(fields[i].getByte(this));
 else         if (theClass == Character.TYPE)         theValue=new Character(fields[i].getChar(this)).toString();
 else         if (theClass == Double.TYPE)         theValue=Double.toString(fields[i].getDouble(this));
 else         if (theClass == Float.TYPE)         theValue=Float.toString(fields[i].getFloat(this));
 else         if (theClass == Integer.TYPE)         theValue=Integer.toString(fields[i].getInt(this));
 else         if (theClass == Long.TYPE)         theValue=Long.toString(fields[i].getLong(this));
 else         if (theClass == Short.TYPE)         theValue=Short.toString(fields[i].getShort(this));
 else         continue;
        defaultValues.put(theKey,theValue);
      }
 catch (      Exception ignored) {
      }
    }
  }
}