Program: 48582
Project: 48582
Buggy source:
private void validateConfigs(Map<String,Object> config,List<String> unRecogConfigTypes,List<String> unRecogConfigKeys,String stackVendor,String stackVersion){
  if (config == null || config.isEmpty()) {
    return;
  }
  ApiStackServiceList servicesList=apiManager.getStackServiceListWithConfigurations(stackVendor,stackVersion);
  Map<String,Object> supportedConfigs=new HashMap<String,Object>();
  for (  ApiStackService apiStackService : servicesList.getApiStackServices()) {
    for (    ApiConfiguration apiConfiguration : apiStackService.getApiConfigurations()) {
      ApiConfigurationInfo apiConfigurationInfo=apiConfiguration.getApiConfigurationInfo();
      String configType=apiConfigurationInfo.getType();
      String propertyName=apiConfigurationInfo.getPropertyName();
      List<String> propertyNames=new ArrayList<String>();
      if (supportedConfigs.isEmpty()) {
        propertyNames.add(propertyName);
      }
 else {
        if (supportedConfigs.containsKey(configType)) {
          propertyNames=(List<String>)supportedConfigs.get(configType);
          propertyNames.add(propertyName);
        }
 else {
          propertyNames.add(propertyName);
        }
      }
      supportedConfigs.put(configType,propertyNames);
    }
  }
  for (  String key : config.keySet()) {
    boolean isSupportedType=false;
    for (    String configType : supportedConfigs.keySet()) {
      if (configType.equals(key + "String_Node_Str")) {
        isSupportedType=true;
        if (isSupportedType) {
          continue;
        }
      }
    }
    if (!isSupportedType) {
      unRecogConfigTypes.add(key);
    }
    Map<String,String> items=(Map<String,String>)config.get(key);
    for (    String subKey : items.keySet()) {
      boolean isSupportedPropety=false;
      for (      String propertyName : (List<String>)supportedConfigs.get(key + "String_Node_Str")) {
        if (propertyName.equals(subKey)) {
          isSupportedPropety=true;
          if (isSupportedPropety) {
            continue;
          }
        }
      }
      if (!isSupportedPropety) {
        unRecogConfigKeys.add(subKey);
      }
    }
  }
}

Fixed version (ground truth):
private void validateConfigs(Map<String,Object> config,List<String> unRecogConfigTypes,List<String> unRecogConfigKeys,String stackVendor,String stackVersion){
  if (config == null || config.isEmpty()) {
    return;
  }
  ApiStackServiceList servicesList=apiManager.getStackServiceListWithConfigurations(stackVendor,stackVersion);
  Map<String,Object> supportedConfigs=new HashMap<String,Object>();
  for (  ApiStackService apiStackService : servicesList.getApiStackServices()) {
    for (    ApiConfiguration apiConfiguration : apiStackService.getApiConfigurations()) {
      ApiConfigurationInfo apiConfigurationInfo=apiConfiguration.getApiConfigurationInfo();
      String configType=apiConfigurationInfo.getType();
      String propertyName=apiConfigurationInfo.getPropertyName();
      List<String> propertyNames=new ArrayList<String>();
      if (supportedConfigs.isEmpty()) {
        propertyNames.add(propertyName);
      }
 else {
        if (supportedConfigs.containsKey(configType)) {
          propertyNames=(List<String>)supportedConfigs.get(configType);
          propertyNames.add(propertyName);
        }
 else {
          propertyNames.add(propertyName);
        }
      }
      supportedConfigs.put(configType,propertyNames);
    }
  }
  Map<String,Object> notAvailableConfig=new HashMap<String,Object>();
  for (  String key : config.keySet()) {
    boolean isSupportedType=false;
    for (    String configType : supportedConfigs.keySet()) {
      if (configType.equals(key + "String_Node_Str")) {
        isSupportedType=true;
        if (isSupportedType) {
          continue;
        }
      }
    }
    if (!isSupportedType) {
      unRecogConfigTypes.add(key);
    }
    try {
      Map<String,String> items=(Map<String,String>)config.get(key);
      for (      String subKey : items.keySet()) {
        boolean isSupportedPropety=false;
        for (        String propertyName : (List<String>)supportedConfigs.get(key + "String_Node_Str")) {
          if (propertyName.equals(subKey)) {
            isSupportedPropety=true;
            if (isSupportedPropety) {
              continue;
            }
          }
        }
        if (!isSupportedPropety) {
          unRecogConfigKeys.add(subKey);
        }
      }
    }
 catch (    Exception e) {
      notAvailableConfig.put(key,config.get(key));
      errorMsgList.add("String_Node_Str" + notAvailableConfig.toString() + "String_Node_Str");
    }
  }
}