Program: 10763
Project: 10763
Buggy source:
/** 
 * @return Deployment copy if a manifest file was successfully loaded intoan app's deployment info working copy. Note that the copy is NOT saved. Null if there is no content to load into the app's deployment info working copy.
 * @throws CoreException if error occurred while loading an existingmanifest file.
 */
public DeploymentInfoWorkingCopy load() throws CoreException {
  DeploymentInfoWorkingCopy workingCopy=appModule.getDeploymentInfoWorkingCopy();
  Map<Object,Object> results=parseManifestFromFile();
  if (results == null) {
    return null;
  }
  Map<Object,Object> applications=getContainingPropertiesMap(results,APPLICATIONS_PROP);
  if (applications == null) {
    throw CloudErrorUtil.toCoreException("String_Node_Str" + relativePath + "String_Node_Str");
  }
  String appName=getValue(applications,NAME_PROP);
  if (appName != null) {
    workingCopy.setDeploymentName(appName);
  }
  String memoryVal=getValue(applications,MEMORY_PROP);
  if (memoryVal != null) {
    int memory=Integer.valueOf(memoryVal);
    if (memory > 0) {
      workingCopy.setMemory(memory);
    }
  }
  String host=getValue(applications,SUB_DOMAIN_PROP);
  if (host != null) {
    CloudApplicationUrlLookup lookup=CloudApplicationUrlLookup.getCurrentLookup(cloudServer);
    CloudApplicationURL defaultUrl=lookup.getDefaultApplicationURL(host);
    if (defaultUrl != null) {
      List<String> urls=Arrays.asList(defaultUrl.getUrl());
      workingCopy.setUris(urls);
    }
  }
  Map<Object,Object> services=getContainingPropertiesMap(applications,SERVICES_PROP);
  if (services != null) {
    List<String> servicesToBind=new ArrayList<String>();
    for (    Entry<Object,Object> entry : services.entrySet()) {
      Object serviceNameObj=entry.getKey();
      if (serviceNameObj instanceof String) {
        String serviceName=(String)serviceNameObj;
        if (!servicesToBind.contains(serviceName)) {
          servicesToBind.add(serviceName);
        }
      }
    }
    workingCopy.setServices(servicesToBind);
  }
  return workingCopy;
}

Fixed version (ground truth):
/** 
 * @return Deployment copy if a manifest file was successfully loaded intoan app's deployment info working copy. Note that the copy is NOT saved. Null if there is no content to load into the app's deployment info working copy.
 * @throws CoreException if error occurred while loading an existingmanifest file.
 */
public DeploymentInfoWorkingCopy load() throws CoreException {
  DeploymentInfoWorkingCopy workingCopy=appModule.getDeploymentInfoWorkingCopy();
  Map<Object,Object> results=parseManifestFromFile();
  if (results == null) {
    return null;
  }
  Map<Object,Object> applications=getContainingPropertiesMap(results,APPLICATIONS_PROP);
  if (applications == null) {
    throw CloudErrorUtil.toCoreException("String_Node_Str" + relativePath + "String_Node_Str");
  }
  String appName=getStringValue(applications,NAME_PROP);
  if (appName != null) {
    workingCopy.setDeploymentName(appName);
  }
  Integer memoryVal=getIntegerValue(applications,MEMORY_PROP);
  if (memoryVal != null) {
    workingCopy.setMemory(memoryVal.intValue());
  }
  String host=getStringValue(applications,SUB_DOMAIN_PROP);
  if (host != null) {
    CloudApplicationUrlLookup lookup=CloudApplicationUrlLookup.getCurrentLookup(cloudServer);
    CloudApplicationURL defaultUrl=lookup.getDefaultApplicationURL(host);
    if (defaultUrl != null) {
      List<String> urls=Arrays.asList(defaultUrl.getUrl());
      workingCopy.setUris(urls);
    }
  }
  Map<Object,Object> services=getContainingPropertiesMap(applications,SERVICES_PROP);
  if (services != null) {
    List<String> servicesToBind=new ArrayList<String>();
    for (    Entry<Object,Object> entry : services.entrySet()) {
      Object serviceNameObj=entry.getKey();
      if (serviceNameObj instanceof String) {
        String serviceName=(String)serviceNameObj;
        if (!servicesToBind.contains(serviceName)) {
          servicesToBind.add(serviceName);
        }
      }
    }
    workingCopy.setServices(servicesToBind);
  }
  return workingCopy;
}