Program: 15390
Project: 15390
Buggy source:
@SuppressWarnings("String_Node_Str") public static void configure(String entrySetName){
  File propsFile=getPropertyFile(entrySetName);
  if (!propsFile.exists()) {
    ConfigurationProperties.store(entrySetName);
  }
  Properties props=new Properties();
  FileReader fileReader=null;
  try {
    fileReader=new FileReader(propsFile);
    props.load(fileReader);
  }
 catch (  FileNotFoundException e) {
    LOG.error(e);
  }
catch (  IOException e) {
    LOG.trace(e,e);
  }
 finally {
    if (fileReader != null) {
      try {
        fileReader.close();
      }
 catch (      IOException e) {
        LOG.error(e);
      }
    }
  }
  List<ConfigurableProperty> prefixProps=PropertyDirectory.getPropertyEntrySet(entrySetName);
  Map<String,String> properties=Maps.fromProperties(props);
  props.clear();
  for (  final ConfigurableProperty p : prefixProps) {
    if (p instanceof StaticPropertyEntry) {
      boolean hasProp=Iterables.any(properties.keySet(),new Predicate<String>(){
        @Override public boolean apply(        String arg0){
          return p.getFieldName().equals(arg0.toLowerCase());
        }
      }
);
      if (hasProp) {
        p.setValue(properties.get(p.getFieldName()));
      }
 else {
        properties.put(p.getFieldName(),p.getValue());
      }
    }
  }
  if (!properties.isEmpty()) {
    props.putAll(properties);
    FileOutputStream fileOutputStream=null;
    try {
      fileOutputStream=new FileOutputStream(propsFile);
      props.save(fileOutputStream,PropertyDirectory.getEntrySetDescription(entrySetName));
    }
 catch (    FileNotFoundException e) {
      LOG.warn("String_Node_Str" + entrySetName,e);
    }
 finally {
      if (fileOutputStream != null) {
        try {
          fileOutputStream.close();
        }
 catch (        IOException e) {
          LOG.error(e);
        }
      }
    }
  }
}

Fixed version (ground truth):
@SuppressWarnings("String_Node_Str") public static void configure(String entrySetName){
  File propsFile=getPropertyFile(entrySetName);
  if (!propsFile.exists()) {
    ConfigurationProperties.store(entrySetName);
  }
  Properties props=new Properties();
  FileReader fileReader=null;
  try {
    fileReader=new FileReader(propsFile);
    props.load(fileReader);
  }
 catch (  FileNotFoundException e) {
    LOG.error(e);
  }
catch (  IOException e) {
    LOG.trace(e,e);
  }
 finally {
    if (fileReader != null) {
      try {
        fileReader.close();
      }
 catch (      IOException e) {
        LOG.error(e);
      }
    }
  }
  List<ConfigurableProperty> prefixProps=PropertyDirectory.getPropertyEntrySet(entrySetName);
  Map<String,String> properties=Maps.newHashMap(Maps.fromProperties(props));
  props.clear();
  for (  final ConfigurableProperty p : prefixProps) {
    if (p instanceof StaticPropertyEntry) {
      boolean hasProp=Iterables.any(properties.keySet(),new Predicate<String>(){
        @Override public boolean apply(        String arg0){
          return p.getFieldName().equals(arg0.toLowerCase());
        }
      }
);
      if (hasProp) {
        p.setValue(properties.get(p.getFieldName()));
      }
 else {
        properties.put(p.getFieldName(),p.getValue());
      }
    }
  }
  if (!properties.isEmpty()) {
    props.putAll(properties);
    FileOutputStream fileOutputStream=null;
    try {
      fileOutputStream=new FileOutputStream(propsFile);
      props.save(fileOutputStream,PropertyDirectory.getEntrySetDescription(entrySetName));
    }
 catch (    FileNotFoundException e) {
      LOG.warn("String_Node_Str" + entrySetName,e);
    }
 finally {
      if (fileOutputStream != null) {
        try {
          fileOutputStream.close();
        }
 catch (        IOException e) {
          LOG.error(e);
        }
      }
    }
  }
}