Program: 106380
Project: 106380
Buggy source:
@Override public HostResponse newHostResponse(HostJoinVO host,EnumSet<HostDetails> details){
  HostResponse hostResponse=new HostResponse();
  hostResponse.setId(host.getUuid());
  hostResponse.setCapabilities(host.getCapabilities());
  hostResponse.setClusterId(host.getClusterUuid());
  hostResponse.setCpuNumber(host.getCpus());
  hostResponse.setZoneId(host.getUuid());
  hostResponse.setDisconnectedOn(host.getDisconnectedOn());
  hostResponse.setHypervisor(host.getHypervisorType());
  hostResponse.setHostType(host.getType());
  hostResponse.setLastPinged(new Date(host.getLastPinged()));
  hostResponse.setManagementServerId(host.getManagementServerId());
  hostResponse.setName(host.getName());
  hostResponse.setPodId(host.getPodUuid());
  hostResponse.setRemoved(host.getRemoved());
  hostResponse.setCpuSpeed(host.getSpeed());
  hostResponse.setState(host.getStatus());
  hostResponse.setIpAddress(host.getPrivateIpAddress());
  hostResponse.setVersion(host.getVersion());
  hostResponse.setCreated(host.getCreated());
  if (details.contains(HostDetails.all) || details.contains(HostDetails.capacity) || details.contains(HostDetails.stats)|| details.contains(HostDetails.events)) {
    hostResponse.setOsCategoryId(host.getOsCategoryUuid());
    hostResponse.setOsCategoryName(host.getOsCategoryName());
    hostResponse.setZoneName(host.getZoneName());
    hostResponse.setPodName(host.getPodName());
    if (host.getClusterId() > 0) {
      hostResponse.setClusterName(host.getClusterName());
      hostResponse.setClusterType(host.getClusterType().toString());
    }
  }
  DecimalFormat decimalFormat=new DecimalFormat("String_Node_Str");
  if (host.getType() == Host.Type.Routing) {
    if (details.contains(HostDetails.all) || details.contains(HostDetails.capacity)) {
      Long mem=host.getMemReservedCapacity() + host.getMemUsedCapacity();
      Long cpu=host.getCpuReservedCapacity() + host.getCpuReservedCapacity();
      hostResponse.setMemoryAllocated(mem);
      hostResponse.setMemoryTotal(host.getTotalMemory());
      String hostTags=host.getTag();
      hostResponse.setHostTags(host.getTag());
      String haTag=ApiDBUtils.getHaTag();
      if (haTag != null && !haTag.isEmpty() && hostTags != null && !hostTags.isEmpty()) {
        if (haTag.equalsIgnoreCase(hostTags)) {
          hostResponse.setHaHost(true);
        }
 else {
          hostResponse.setHaHost(false);
        }
      }
 else {
        hostResponse.setHaHost(false);
      }
      hostResponse.setHypervisorVersion(host.getHypervisorVersion());
      String cpuAlloc=decimalFormat.format(((float)cpu / (float)(host.getCpus() * host.getSpeed())) * 100f) + "String_Node_Str";
      hostResponse.setCpuAllocated(cpuAlloc);
      String cpuWithOverprovisioning=new Float(host.getCpus() * host.getSpeed() * ApiDBUtils.getCpuOverprovisioningFactor()).toString();
      hostResponse.setCpuWithOverprovisioning(cpuWithOverprovisioning);
    }
    if (details.contains(HostDetails.all) || details.contains(HostDetails.stats)) {
      String cpuUsed=null;
      HostStats hostStats=ApiDBUtils.getHostStatistics(host.getId());
      if (hostStats != null) {
        float cpuUtil=(float)hostStats.getCpuUtilization();
        cpuUsed=decimalFormat.format(cpuUtil) + "String_Node_Str";
        hostResponse.setCpuUsed(cpuUsed);
        hostResponse.setMemoryUsed((new Double(hostStats.getUsedMemory())).longValue());
        hostResponse.setNetworkKbsRead((new Double(hostStats.getNetworkReadKBs())).longValue());
        hostResponse.setNetworkKbsWrite((new Double(hostStats.getNetworkWriteKBs())).longValue());
      }
    }
  }
 else   if (host.getType() == Host.Type.SecondaryStorage) {
    StorageStats secStorageStats=ApiDBUtils.getSecondaryStorageStatistics(host.getId());
    if (secStorageStats != null) {
      hostResponse.setDiskSizeTotal(secStorageStats.getCapacityBytes());
      hostResponse.setDiskSizeAllocated(secStorageStats.getByteUsed());
    }
  }
  hostResponse.setLocalStorageActive(ApiDBUtils.isLocalStorageActiveOnHost(host.getId()));
  if (details.contains(HostDetails.all) || details.contains(HostDetails.events)) {
    Set<com.cloud.host.Status.Event> possibleEvents=host.getStatus().getPossibleEvents();
    if ((possibleEvents != null) && !possibleEvents.isEmpty()) {
      String events="String_Node_Str";
      Iterator<com.cloud.host.Status.Event> iter=possibleEvents.iterator();
      while (iter.hasNext()) {
        com.cloud.host.Status.Event event=iter.next();
        events+=event.toString();
        if (iter.hasNext()) {
          events+="String_Node_Str";
        }
      }
      hostResponse.setEvents(events);
    }
  }
  hostResponse.setResourceState(host.getResourceState().toString());
  hostResponse.setJobId(host.getJobUuid());
  hostResponse.setJobStatus(host.getJobStatus());
  hostResponse.setObjectName("String_Node_Str");
  return hostResponse;
}

Fixed version (ground truth):
@Override public HostResponse newHostResponse(HostJoinVO host,EnumSet<HostDetails> details){
  HostResponse hostResponse=new HostResponse();
  hostResponse.setId(host.getUuid());
  hostResponse.setCapabilities(host.getCapabilities());
  hostResponse.setClusterId(host.getClusterUuid());
  hostResponse.setCpuNumber(host.getCpus());
  hostResponse.setZoneId(host.getZoneUuid());
  hostResponse.setDisconnectedOn(host.getDisconnectedOn());
  hostResponse.setHypervisor(host.getHypervisorType());
  hostResponse.setHostType(host.getType());
  hostResponse.setLastPinged(new Date(host.getLastPinged()));
  hostResponse.setManagementServerId(host.getManagementServerId());
  hostResponse.setName(host.getName());
  hostResponse.setPodId(host.getPodUuid());
  hostResponse.setRemoved(host.getRemoved());
  hostResponse.setCpuSpeed(host.getSpeed());
  hostResponse.setState(host.getStatus());
  hostResponse.setIpAddress(host.getPrivateIpAddress());
  hostResponse.setVersion(host.getVersion());
  hostResponse.setCreated(host.getCreated());
  if (details.contains(HostDetails.all) || details.contains(HostDetails.capacity) || details.contains(HostDetails.stats)|| details.contains(HostDetails.events)) {
    hostResponse.setOsCategoryId(host.getOsCategoryUuid());
    hostResponse.setOsCategoryName(host.getOsCategoryName());
    hostResponse.setZoneName(host.getZoneName());
    hostResponse.setPodName(host.getPodName());
    if (host.getClusterId() > 0) {
      hostResponse.setClusterName(host.getClusterName());
      hostResponse.setClusterType(host.getClusterType().toString());
    }
  }
  DecimalFormat decimalFormat=new DecimalFormat("String_Node_Str");
  if (host.getType() == Host.Type.Routing) {
    if (details.contains(HostDetails.all) || details.contains(HostDetails.capacity)) {
      Long mem=host.getMemReservedCapacity() + host.getMemUsedCapacity();
      Long cpu=host.getCpuReservedCapacity() + host.getCpuReservedCapacity();
      hostResponse.setMemoryAllocated(mem);
      hostResponse.setMemoryTotal(host.getTotalMemory());
      String hostTags=host.getTag();
      hostResponse.setHostTags(host.getTag());
      String haTag=ApiDBUtils.getHaTag();
      if (haTag != null && !haTag.isEmpty() && hostTags != null && !hostTags.isEmpty()) {
        if (haTag.equalsIgnoreCase(hostTags)) {
          hostResponse.setHaHost(true);
        }
 else {
          hostResponse.setHaHost(false);
        }
      }
 else {
        hostResponse.setHaHost(false);
      }
      hostResponse.setHypervisorVersion(host.getHypervisorVersion());
      String cpuAlloc=decimalFormat.format(((float)cpu / (float)(host.getCpus() * host.getSpeed())) * 100f) + "String_Node_Str";
      hostResponse.setCpuAllocated(cpuAlloc);
      String cpuWithOverprovisioning=new Float(host.getCpus() * host.getSpeed() * ApiDBUtils.getCpuOverprovisioningFactor()).toString();
      hostResponse.setCpuWithOverprovisioning(cpuWithOverprovisioning);
    }
    if (details.contains(HostDetails.all) || details.contains(HostDetails.stats)) {
      String cpuUsed=null;
      HostStats hostStats=ApiDBUtils.getHostStatistics(host.getId());
      if (hostStats != null) {
        float cpuUtil=(float)hostStats.getCpuUtilization();
        cpuUsed=decimalFormat.format(cpuUtil) + "String_Node_Str";
        hostResponse.setCpuUsed(cpuUsed);
        hostResponse.setMemoryUsed((new Double(hostStats.getUsedMemory())).longValue());
        hostResponse.setNetworkKbsRead((new Double(hostStats.getNetworkReadKBs())).longValue());
        hostResponse.setNetworkKbsWrite((new Double(hostStats.getNetworkWriteKBs())).longValue());
      }
    }
  }
 else   if (host.getType() == Host.Type.SecondaryStorage) {
    StorageStats secStorageStats=ApiDBUtils.getSecondaryStorageStatistics(host.getId());
    if (secStorageStats != null) {
      hostResponse.setDiskSizeTotal(secStorageStats.getCapacityBytes());
      hostResponse.setDiskSizeAllocated(secStorageStats.getByteUsed());
    }
  }
  hostResponse.setLocalStorageActive(ApiDBUtils.isLocalStorageActiveOnHost(host.getId()));
  if (details.contains(HostDetails.all) || details.contains(HostDetails.events)) {
    Set<com.cloud.host.Status.Event> possibleEvents=host.getStatus().getPossibleEvents();
    if ((possibleEvents != null) && !possibleEvents.isEmpty()) {
      String events="String_Node_Str";
      Iterator<com.cloud.host.Status.Event> iter=possibleEvents.iterator();
      while (iter.hasNext()) {
        com.cloud.host.Status.Event event=iter.next();
        events+=event.toString();
        if (iter.hasNext()) {
          events+="String_Node_Str";
        }
      }
      hostResponse.setEvents(events);
    }
  }
  hostResponse.setResourceState(host.getResourceState().toString());
  hostResponse.setJobId(host.getJobUuid());
  hostResponse.setJobStatus(host.getJobStatus());
  hostResponse.setObjectName("String_Node_Str");
  return hostResponse;
}