Program: 59834
Project: 59834
Buggy source:
@Override public void processConfigFile(File file) throws IOException, BindException {
  PropertiesConfiguration confFile;
  try {
    confFile=new PropertiesConfiguration(file);
  }
 catch (  ConfigurationException e) {
    throw new BindException("String_Node_Str",e);
  }
  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);
        }
      }
      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(TypeHierarchy.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 {
          try {
            bind(key,value);
          }
 catch (          ClassNotFoundException e) {
            throw new BindException("String_Node_Str",e);
          }
        }
      }
    }
  }
}

Fixed version (ground truth):
@Override public void processConfigFile(File file) throws IOException, BindException {
  PropertiesConfiguration confFile;
  try {
    confFile=new PropertiesConfiguration(file);
  }
 catch (  ConfigurationException e) {
    throw new BindException("String_Node_Str",e);
  }
  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);
        }
      }
      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 {
          try {
            bind(key,value);
          }
 catch (          ClassNotFoundException e) {
            throw new BindException("String_Node_Str",e);
          }
        }
      }
    }
  }
}