Program: 151952
Project: 151952
Buggy source:
private Metadata getMetadata() throws IOException, ConfigurationException, DocumentException {
  String cm=configModifier != null ? configModifier : "String_Node_Str";
  mdSem.acquireUninterruptibly();
  Metadata md=metadatas.get(cm);
  if (md == null)   try {
    StandardServiceRegistryBuilder ssrb=new StandardServiceRegistryBuilder();
    String propFile;
    String dbPropertiesPrefix="String_Node_Str";
    String metadataPrefix="String_Node_Str";
    if (configModifier != null) {
      String[] ss=configModifier.split("String_Node_Str");
      if (ss.length > 0)       dbPropertiesPrefix=ss[0] + "String_Node_Str";
      if (ss.length > 1)       metadataPrefix=ss[1] + "String_Node_Str";
    }
    String hibCfg=System.getProperty("String_Node_Str","String_Node_Str" + dbPropertiesPrefix + "String_Node_Str");
    if (getClass().getClassLoader().getResource(hibCfg) == null)     hibCfg=null;
    if (hibCfg == null)     hibCfg=System.getProperty("String_Node_Str","String_Node_Str");
    ssrb.configure(hibCfg);
    propFile=System.getProperty(dbPropertiesPrefix + "String_Node_Str","String_Node_Str" + dbPropertiesPrefix + "String_Node_Str");
    Properties dbProps=loadProperties(propFile);
    if (dbProps != null) {
      for (      Map.Entry entry : dbProps.entrySet()) {
        ssrb.applySetting((String)entry.getKey(),entry.getValue());
      }
    }
    Space sp=SpaceFactory.getSpace("String_Node_Str");
    String user=(String)sp.inp(dbPropertiesPrefix + "String_Node_Str");
    String pass=(String)sp.inp(dbPropertiesPrefix + "String_Node_Str");
    if (user != null)     ssrb.applySetting("String_Node_Str",user);
    if (pass != null)     ssrb.applySetting("String_Node_Str",pass);
    MetadataSources mds=new MetadataSources(ssrb.build());
    List<String> moduleConfigs=ModuleUtils.getModuleEntries(MODULES_CONFIG_PATH);
    for (    String moduleConfig : moduleConfigs) {
      if (metadataPrefix.length() == 0 || moduleConfig.substring(MODULES_CONFIG_PATH.length()).startsWith(metadataPrefix)) {
        if ((!metadataPrefix.contains("String_Node_Str") && moduleConfig.contains("String_Node_Str")) || (!moduleConfig.contains("String_Node_Str") && metadataPrefix.contains("String_Node_Str")))         continue;
        addMappings(mds,moduleConfig);
      }
    }
    md=mds.buildMetadata();
    metadatas.put(cm,md);
  }
  finally {
    mdSem.release();
  }
  return md;
}

Fixed version (ground truth):
private Metadata getMetadata() throws IOException, ConfigurationException, DocumentException {
  String cm=configModifier != null ? configModifier : "String_Node_Str";
  mdSem.acquireUninterruptibly();
  Metadata md=metadatas.get(cm);
  try {
    if (md == null) {
      StandardServiceRegistryBuilder ssrb=new StandardServiceRegistryBuilder();
      String propFile;
      String dbPropertiesPrefix="String_Node_Str";
      String metadataPrefix="String_Node_Str";
      if (configModifier != null) {
        String[] ss=configModifier.split("String_Node_Str");
        if (ss.length > 0)         dbPropertiesPrefix=ss[0] + "String_Node_Str";
        if (ss.length > 1)         metadataPrefix=ss[1] + "String_Node_Str";
      }
      String hibCfg=System.getProperty("String_Node_Str","String_Node_Str" + dbPropertiesPrefix + "String_Node_Str");
      if (getClass().getClassLoader().getResource(hibCfg) == null)       hibCfg=null;
      if (hibCfg == null)       hibCfg=System.getProperty("String_Node_Str","String_Node_Str");
      ssrb.configure(hibCfg);
      propFile=System.getProperty(dbPropertiesPrefix + "String_Node_Str","String_Node_Str" + dbPropertiesPrefix + "String_Node_Str");
      Properties dbProps=loadProperties(propFile);
      if (dbProps != null) {
        for (        Map.Entry entry : dbProps.entrySet()) {
          ssrb.applySetting((String)entry.getKey(),entry.getValue());
        }
      }
      Space sp=SpaceFactory.getSpace("String_Node_Str");
      String user=(String)sp.inp(dbPropertiesPrefix + "String_Node_Str");
      String pass=(String)sp.inp(dbPropertiesPrefix + "String_Node_Str");
      if (user != null)       ssrb.applySetting("String_Node_Str",user);
      if (pass != null)       ssrb.applySetting("String_Node_Str",pass);
      MetadataSources mds=new MetadataSources(ssrb.build());
      List<String> moduleConfigs=ModuleUtils.getModuleEntries(MODULES_CONFIG_PATH);
      for (      String moduleConfig : moduleConfigs) {
        if (metadataPrefix.length() == 0 || moduleConfig.substring(MODULES_CONFIG_PATH.length()).startsWith(metadataPrefix)) {
          if ((!metadataPrefix.contains("String_Node_Str") && moduleConfig.contains("String_Node_Str")) || (!moduleConfig.contains("String_Node_Str") && metadataPrefix.contains("String_Node_Str")))           continue;
          addMappings(mds,moduleConfig);
        }
      }
      md=mds.buildMetadata();
      metadatas.put(cm,md);
    }
  }
  finally {
    mdSem.release();
  }
  return md;
}