Program: 59822
Project: 59822
Buggy source:
public void processConfigFile(PropertiesConfiguration confFile) throws IOException, BindException {
  Iterator<String> it=confFile.getKeys();
  Map<String,String> shortNames=new HashMap<String,String>();
  while (it.hasNext()) {
    String key=it.next();
    String longName=shortNames.get(key);
    String[] values=confFile.getStringArray(key);
    if (longName != null) {
      key=longName;
    }
    for (    String value : values) {
      boolean isSingleton=false;
      if (value.equals(ConfigurationImpl.SINGLETON)) {
        isSingleton=true;
      }
      if (value.equals(ConfigurationImpl.REGISTERED)) {
        try {
          this.conf.namespace.register(conf.classForName(key));
        }
 catch (        ClassNotFoundException e) {
          throw new BindException("String_Node_Str" + key + "String_Node_Str",e);
        }
      }
 else       if (key.equals(ConfigurationImpl.IMPORT)) {
        if (isSingleton) {
          throw new IllegalArgumentException("String_Node_Str" + ConfigurationImpl.IMPORT + "String_Node_Str"+ ConfigurationImpl.SINGLETON+ "String_Node_Str");
        }
        try {
          this.conf.namespace.register(conf.classForName(value));
          String[] tok=value.split(ReflectionUtilities.regexp);
          try {
            this.conf.namespace.getNode(tok[tok.length - 1]);
            throw new IllegalArgumentException("String_Node_Str" + tok[tok.length - 1]);
          }
 catch (          NameResolutionException e) {
            String oldValue=shortNames.put(tok[tok.length - 1],value);
            if (oldValue != null) {
              throw new IllegalArgumentException("String_Node_Str" + tok[tok.length - 1] + "String_Node_Str"+ oldValue+ "String_Node_Str"+ value);
            }
          }
        }
 catch (        ClassNotFoundException e) {
          throw new BindException("String_Node_Str" + value + "String_Node_Str",e);
        }
      }
 else {
        if (isSingleton) {
          final Class<?> c;
          try {
            c=conf.classForName(key);
          }
 catch (          ClassNotFoundException e) {
            throw new BindException("String_Node_Str",e);
          }
          bindSingleton(c);
        }
 else {
          bind(key,value);
        }
      }
    }
  }
}

Fixed version (ground truth):
public void processConfigFile(PropertiesConfiguration confFile) throws IOException, BindException {
  Iterator<String> it=confFile.getKeys();
  Map<String,String> shortNames=new HashMap<String,String>();
  while (it.hasNext()) {
    String key=it.next();
    String longName=shortNames.get(key);
    String[] values=confFile.getStringArray(key);
    if (longName != null) {
      key=longName;
    }
    for (    String value : values) {
      boolean isSingleton=false;
      if (value.equals(ConfigurationImpl.SINGLETON)) {
        isSingleton=true;
      }
      if (value.equals(ConfigurationImpl.REGISTERED)) {
        try {
          this.conf.namespace.register(conf.classForName(key));
        }
 catch (        ClassNotFoundException e) {
          throw new BindException("String_Node_Str" + key + "String_Node_Str",e);
        }
      }
 else       if (key.equals(ConfigurationImpl.IMPORT)) {
        if (isSingleton) {
          throw new IllegalArgumentException("String_Node_Str" + ConfigurationImpl.IMPORT + "String_Node_Str"+ ConfigurationImpl.SINGLETON+ "String_Node_Str");
        }
        try {
          this.conf.namespace.register(conf.classForName(value));
          String[] tok=value.split(ReflectionUtilities.regexp);
          try {
            this.conf.namespace.getNode(tok[tok.length - 1]);
            throw new IllegalArgumentException("String_Node_Str" + tok[tok.length - 1]);
          }
 catch (          NameResolutionException e) {
            String oldValue=shortNames.put(tok[tok.length - 1],value);
            if (oldValue != null) {
              throw new IllegalArgumentException("String_Node_Str" + tok[tok.length - 1] + "String_Node_Str"+ oldValue+ "String_Node_Str"+ value);
            }
          }
        }
 catch (        ClassNotFoundException e) {
          throw new BindException("String_Node_Str" + value + "String_Node_Str",e);
        }
      }
 else       if (value.startsWith(ConfigurationImpl.INIT)) {
        String parseValue=value.substring(ConfigurationImpl.INIT.length(),value.length());
        parseValue=parseValue.replaceAll("String_Node_Str","String_Node_Str");
        parseValue=parseValue.replaceAll("String_Node_Str","String_Node_Str");
        String[] classes=parseValue.split("String_Node_Str");
        Class<?>[] clazzes=new Class[classes.length];
        for (int i=0; i < classes.length; i++) {
          try {
            clazzes[i]=conf.classForName(classes[i]);
          }
 catch (          ClassNotFoundException e) {
            throw new BindException("String_Node_Str" + classes[i] + "String_Node_Str"+ key);
          }
        }
        try {
          registerLegacyConstructor(conf.classForName(key),clazzes);
        }
 catch (        ClassNotFoundException e) {
          throw new BindException("String_Node_Str" + key + "String_Node_Str"+ value);
        }
      }
 else {
        if (isSingleton) {
          final Class<?> c;
          try {
            c=conf.classForName(key);
          }
 catch (          ClassNotFoundException e) {
            throw new BindException("String_Node_Str",e);
          }
          bindSingleton(c);
        }
 else {
          bind(key,value);
        }
      }
    }
  }
}