Program: 107487
Project: 107487
Buggy source:
@Override public List<Pair<String,Object>> execute(Map<String,Object> params){
  Long id=(Long)params.get(BaseCmd.Properties.ID.getName());
  Account account=(Account)params.get(BaseCmd.Properties.ACCOUNT_OBJ.getName());
  String accountName=(String)params.get(BaseCmd.Properties.ACCOUNT.getName());
  Long domainId=(Long)params.get(BaseCmd.Properties.DOMAIN_ID.getName());
  String name=(String)params.get(BaseCmd.Properties.NAME.getName());
  String state=(String)params.get(BaseCmd.Properties.STATE.getName());
  Long zoneId=(Long)params.get(BaseCmd.Properties.ZONE_ID.getName());
  Long podId=(Long)params.get(BaseCmd.Properties.POD_ID.getName());
  Long hostId=(Long)params.get(BaseCmd.Properties.HOST_ID.getName());
  String group=(String)params.get(BaseCmd.Properties.GROUP.getName());
  String keyword=(String)params.get(BaseCmd.Properties.KEYWORD.getName());
  Integer page=(Integer)params.get(BaseCmd.Properties.PAGE.getName());
  Integer pageSize=(Integer)params.get(BaseCmd.Properties.PAGESIZE.getName());
  Long accountId=null;
  Boolean isAdmin=false;
  if ((account == null) || isAdmin(account.getType())) {
    isAdmin=true;
    if (domainId != null) {
      if ((account != null) && !getManagementServer().isChildDomain(account.getDomainId(),domainId)) {
        throw new ServerApiException(BaseCmd.PARAM_ERROR,"String_Node_Str" + domainId + "String_Node_Str");
      }
      if (accountName != null) {
        account=getManagementServer().findActiveAccount(accountName,domainId);
        if (account == null) {
          throw new ServerApiException(BaseCmd.ACCOUNT_ERROR,"String_Node_Str" + accountName + "String_Node_Str"+ domainId);
        }
        accountId=account.getId();
      }
    }
 else {
      domainId=((account == null) ? DomainVO.ROOT_DOMAIN : account.getDomainId());
    }
  }
 else {
    accountName=account.getAccountName();
    accountId=account.getId();
    domainId=account.getDomainId();
  }
  Long[] accountIds=null;
  if (accountId != null) {
    accountIds=new Long[1];
    accountIds[0]=accountId;
  }
  Long startIndex=Long.valueOf(0);
  int pageSizeNum=50;
  if (pageSize != null) {
    pageSizeNum=pageSize.intValue();
  }
  if (page != null) {
    int pageNum=page.intValue();
    if (pageNum > 0) {
      startIndex=Long.valueOf(pageSizeNum * (pageNum - 1));
    }
  }
  Criteria c=new Criteria("String_Node_Str",Boolean.TRUE,startIndex,Long.valueOf(pageSizeNum));
  if (keyword != null) {
    c.addCriteria(Criteria.KEYWORD,keyword);
  }
 else {
    c.addCriteria(Criteria.ID,id);
    c.addCriteria(Criteria.NAME,name);
    c.addCriteria(Criteria.STATE,state);
    if (zoneId != null)     c.addCriteria(Criteria.DATACENTERID,zoneId);
    if (group != null) {
      if (group.equals("String_Node_Str"))       c.addCriteria(Criteria.EMPTY_GROUP,group);
 else       c.addCriteria(Criteria.GROUP,group);
    }
    if (isAdmin == true) {
      c.addCriteria(Criteria.DOMAINID,domainId);
      if (podId != null)       c.addCriteria(Criteria.PODID,podId);
      c.addCriteria(Criteria.HOSTID,hostId);
    }
  }
  c.addCriteria(Criteria.ACCOUNTID,accountIds);
  c.addCriteria(Criteria.ISADMIN,isAdmin);
  List<? extends UserVm> virtualMachines=getManagementServer().searchForUserVMs(c);
  if (virtualMachines == null) {
    throw new ServerApiException(BaseCmd.VM_LIST_ERROR,"String_Node_Str" + accountName.toString());
  }
  Object[] vmTag=new Object[virtualMachines.size()];
  int i=0;
  HashMap<Long,HostVO> hostMap=new HashMap<Long,HostVO>();
  List<HostVO> hostList=getManagementServer().listAllActiveHosts();
  for (  HostVO hostVO : hostList) {
    hostMap.put(hostVO.getId(),hostVO);
  }
  for (  UserVm vmInstance : virtualMachines) {
    List<Pair<String,Object>> vmData=new ArrayList<Pair<String,Object>>();
    AsyncJobVO asyncJob=getManagementServer().findInstancePendingAsyncJob("String_Node_Str",vmInstance.getId());
    if (asyncJob != null) {
      vmData.add(new Pair<String,Object>(BaseCmd.Properties.JOB_ID.getName(),asyncJob.getId().toString()));
      vmData.add(new Pair<String,Object>(BaseCmd.Properties.JOB_STATUS.getName(),String.valueOf(asyncJob.getStatus())));
    }
    vmData.add(new Pair<String,Object>(BaseCmd.Properties.ID.getName(),Long.toString(vmInstance.getId())));
    vmData.add(new Pair<String,Object>(BaseCmd.Properties.NAME.getName(),vmInstance.getName()));
    vmData.add(new Pair<String,Object>(BaseCmd.Properties.CREATED.getName(),getDateString(vmInstance.getCreated())));
    vmData.add(new Pair<String,Object>(BaseCmd.Properties.IP_ADDRESS.getName(),vmInstance.getPrivateIpAddress()));
    if (vmInstance.getState() != null) {
      vmData.add(new Pair<String,Object>(BaseCmd.Properties.STATE.getName(),vmInstance.getState().toString()));
    }
    Account acct=getManagementServer().findAccountById(Long.valueOf(vmInstance.getAccountId()));
    if (acct != null) {
      vmData.add(new Pair<String,Object>(BaseCmd.Properties.ACCOUNT.getName(),acct.getAccountName()));
      vmData.add(new Pair<String,Object>(BaseCmd.Properties.DOMAIN_ID.getName(),Long.toString(acct.getDomainId())));
      vmData.add(new Pair<String,Object>(BaseCmd.Properties.DOMAIN.getName(),getManagementServer().findDomainIdById(acct.getDomainId()).getName()));
    }
    vmData.add(new Pair<String,Object>(BaseCmd.Properties.HA_ENABLE.getName(),Boolean.valueOf(vmInstance.isHaEnabled()).toString()));
    if (vmInstance.getDisplayName() != null) {
      vmData.add(new Pair<String,Object>(BaseCmd.Properties.DISPLAY_NAME.getName(),vmInstance.getDisplayName()));
    }
 else {
      vmData.add(new Pair<String,Object>(BaseCmd.Properties.DISPLAY_NAME.getName(),vmInstance.getName()));
    }
    if (vmInstance.getGroup() != null) {
      vmData.add(new Pair<String,Object>(BaseCmd.Properties.GROUP.getName(),vmInstance.getGroup()));
    }
    vmData.add(new Pair<String,Object>(BaseCmd.Properties.ZONE_ID.getName(),Long.valueOf(vmInstance.getDataCenterId()).toString()));
    vmData.add(new Pair<String,Object>(BaseCmd.Properties.ZONE_NAME.getName(),getManagementServer().findDataCenterById(vmInstance.getDataCenterId()).getName()));
    if ((isAdmin == true) && (vmInstance.getHostId() != null)) {
      vmData.add(new Pair<String,Object>(BaseCmd.Properties.HOST_ID.getName(),vmInstance.getHostId().toString()));
      vmData.add(new Pair<String,Object>(BaseCmd.Properties.HOST_NAME.getName(),getManagementServer().getHostBy(vmInstance.getHostId()).getName()));
    }
    VMTemplateVO template=getManagementServer().findTemplateById(vmInstance.getTemplateId());
    if (template != null) {
      vmData.add(new Pair<String,Object>(BaseCmd.Properties.TEMPLATE_ID.getName(),Long.valueOf(vmInstance.getTemplateId()).toString()));
      vmData.add(new Pair<String,Object>(BaseCmd.Properties.TEMPLATE_NAME.getName(),template.getName()));
      vmData.add(new Pair<String,Object>(BaseCmd.Properties.TEMPLATE_DISPLAY_TEXT.getName(),template.getDisplayText()));
      vmData.add(new Pair<String,Object>(BaseCmd.Properties.PASSWORD_ENABLED.getName(),template.getEnablePassword()));
    }
 else {
      vmData.add(new Pair<String,Object>(BaseCmd.Properties.TEMPLATE_ID.getName(),"String_Node_Str"));
      vmData.add(new Pair<String,Object>(BaseCmd.Properties.TEMPLATE_NAME.getName(),"String_Node_Str"));
      vmData.add(new Pair<String,Object>(BaseCmd.Properties.TEMPLATE_DISPLAY_TEXT.getName(),"String_Node_Str"));
      vmData.add(new Pair<String,Object>(BaseCmd.Properties.PASSWORD_ENABLED.getName(),false));
    }
    if (vmInstance.getIsoId() != null) {
      VMTemplateVO iso=getManagementServer().findTemplateById(vmInstance.getIsoId().longValue());
      if (iso != null) {
        vmData.add(new Pair<String,Object>(BaseCmd.Properties.ISO_ID.getName(),Long.valueOf(vmInstance.getIsoId()).toString()));
        vmData.add(new Pair<String,Object>(BaseCmd.Properties.ISO_NAME.getName(),iso.getName()));
      }
    }
    ServiceOfferingVO offering=getManagementServer().findServiceOfferingById(vmInstance.getServiceOfferingId());
    vmData.add(new Pair<String,Object>(BaseCmd.Properties.SERVICE_OFFERING_ID.getName(),Long.valueOf(vmInstance.getServiceOfferingId()).toString()));
    vmData.add(new Pair<String,Object>(BaseCmd.Properties.SERVICE_OFFERING_NAME.getName(),offering.getName()));
    vmData.add(new Pair<String,Object>(BaseCmd.Properties.CPU_NUMBER.getName(),Integer.valueOf(offering.getCpu()).toString()));
    vmData.add(new Pair<String,Object>(BaseCmd.Properties.CPU_SPEED.getName(),Integer.valueOf(offering.getSpeed()).toString()));
    vmData.add(new Pair<String,Object>(BaseCmd.Properties.MEMORY.getName(),Integer.valueOf(offering.getRamSize()).toString()));
    DecimalFormat decimalFormat=new DecimalFormat("String_Node_Str");
    String cpuUsed=null;
    VmStats vmStats=getManagementServer().getVmStatistics(vmInstance.getId());
    if (vmStats != null) {
      float cpuUtil=(float)vmStats.getCPUUtilization();
      cpuUsed=decimalFormat.format(cpuUtil) + "String_Node_Str";
      vmData.add(new Pair<String,Object>(BaseCmd.Properties.CPU_USED.getName(),cpuUsed));
      long networkKbRead=(long)vmStats.getNetworkReadKBs();
      vmData.add(new Pair<String,Object>(BaseCmd.Properties.NETWORK_KB_READ.getName(),networkKbRead));
      long networkKbWrite=(long)vmStats.getNetworkWriteKBs();
      vmData.add(new Pair<String,Object>(BaseCmd.Properties.NETWORK_KB_WRITE.getName(),networkKbWrite));
    }
    GuestOSCategoryVO guestOsCategory=getManagementServer().getGuestOsCategory(vmInstance.getGuestOSId());
    if (guestOsCategory != null)     vmData.add(new Pair<String,Object>(BaseCmd.Properties.OS_TYPE_ID.getName(),guestOsCategory.getId()));
    vmData.add(new Pair<String,Object>(BaseCmd.Properties.NETWORK_GROUP_LIST.getName(),getManagementServer().getNetworkGroupsNamesForVm(vmInstance.getId())));
    VolumeVO rootVolume=getManagementServer().findRootVolume(vmInstance.getId());
    vmData.add(new Pair<String,Object>(BaseCmd.Properties.ROOT_DEVICE_ID.getName(),rootVolume.getDeviceId()));
    StoragePoolVO storagePool=getManagementServer().findPoolById(rootVolume.getPoolId());
    vmData.add(new Pair<String,Object>(BaseCmd.Properties.ROOT_DEVICE_TYPE.getName(),storagePool.getPoolType().toString()));
    vmTag[i++]=vmData;
  }
  List<Pair<String,Object>> returnTags=new ArrayList<Pair<String,Object>>();
  Pair<String,Object> vmTags=new Pair<String,Object>("String_Node_Str",vmTag);
  returnTags.add(vmTags);
  return returnTags;
}

Fixed version (ground truth):
@Override public List<Pair<String,Object>> execute(Map<String,Object> params){
  Long id=(Long)params.get(BaseCmd.Properties.ID.getName());
  Account account=(Account)params.get(BaseCmd.Properties.ACCOUNT_OBJ.getName());
  String accountName=(String)params.get(BaseCmd.Properties.ACCOUNT.getName());
  Long domainId=(Long)params.get(BaseCmd.Properties.DOMAIN_ID.getName());
  String name=(String)params.get(BaseCmd.Properties.NAME.getName());
  String state=(String)params.get(BaseCmd.Properties.STATE.getName());
  Long zoneId=(Long)params.get(BaseCmd.Properties.ZONE_ID.getName());
  Long podId=(Long)params.get(BaseCmd.Properties.POD_ID.getName());
  Long hostId=(Long)params.get(BaseCmd.Properties.HOST_ID.getName());
  String group=(String)params.get(BaseCmd.Properties.GROUP.getName());
  String keyword=(String)params.get(BaseCmd.Properties.KEYWORD.getName());
  Integer page=(Integer)params.get(BaseCmd.Properties.PAGE.getName());
  Integer pageSize=(Integer)params.get(BaseCmd.Properties.PAGESIZE.getName());
  Long accountId=null;
  Boolean isAdmin=false;
  if ((account == null) || isAdmin(account.getType())) {
    isAdmin=true;
    if (domainId != null) {
      if ((account != null) && !getManagementServer().isChildDomain(account.getDomainId(),domainId)) {
        throw new ServerApiException(BaseCmd.PARAM_ERROR,"String_Node_Str" + domainId + "String_Node_Str");
      }
      if (accountName != null) {
        account=getManagementServer().findActiveAccount(accountName,domainId);
        if (account == null) {
          throw new ServerApiException(BaseCmd.ACCOUNT_ERROR,"String_Node_Str" + accountName + "String_Node_Str"+ domainId);
        }
        accountId=account.getId();
      }
    }
 else {
      domainId=((account == null) ? DomainVO.ROOT_DOMAIN : account.getDomainId());
    }
  }
 else {
    accountName=account.getAccountName();
    accountId=account.getId();
    domainId=account.getDomainId();
  }
  Long[] accountIds=null;
  if (accountId != null) {
    accountIds=new Long[1];
    accountIds[0]=accountId;
  }
  Long startIndex=Long.valueOf(0);
  int pageSizeNum=50;
  if (pageSize != null) {
    pageSizeNum=pageSize.intValue();
  }
  if (page != null) {
    int pageNum=page.intValue();
    if (pageNum > 0) {
      startIndex=Long.valueOf(pageSizeNum * (pageNum - 1));
    }
  }
  Criteria c=new Criteria("String_Node_Str",Boolean.TRUE,startIndex,Long.valueOf(pageSizeNum));
  if (keyword != null) {
    c.addCriteria(Criteria.KEYWORD,keyword);
  }
 else {
    c.addCriteria(Criteria.ID,id);
    c.addCriteria(Criteria.NAME,name);
    c.addCriteria(Criteria.STATE,state);
    if (zoneId != null)     c.addCriteria(Criteria.DATACENTERID,zoneId);
    if (group != null) {
      if (group.equals("String_Node_Str"))       c.addCriteria(Criteria.EMPTY_GROUP,group);
 else       c.addCriteria(Criteria.GROUP,group);
    }
    if (isAdmin == true) {
      c.addCriteria(Criteria.DOMAINID,domainId);
      if (podId != null)       c.addCriteria(Criteria.PODID,podId);
      c.addCriteria(Criteria.HOSTID,hostId);
    }
  }
  c.addCriteria(Criteria.ACCOUNTID,accountIds);
  c.addCriteria(Criteria.ISADMIN,isAdmin);
  List<? extends UserVm> virtualMachines=getManagementServer().searchForUserVMs(c);
  if (virtualMachines == null) {
    throw new ServerApiException(BaseCmd.VM_LIST_ERROR,"String_Node_Str" + accountName.toString());
  }
  Object[] vmTag=new Object[virtualMachines.size()];
  int i=0;
  HashMap<Long,HostVO> hostMap=new HashMap<Long,HostVO>();
  List<HostVO> hostList=getManagementServer().listAllActiveHosts();
  for (  HostVO hostVO : hostList) {
    hostMap.put(hostVO.getId(),hostVO);
  }
  for (  UserVm vmInstance : virtualMachines) {
    List<Pair<String,Object>> vmData=new ArrayList<Pair<String,Object>>();
    AsyncJobVO asyncJob=getManagementServer().findInstancePendingAsyncJob("String_Node_Str",vmInstance.getId());
    if (asyncJob != null) {
      vmData.add(new Pair<String,Object>(BaseCmd.Properties.JOB_ID.getName(),asyncJob.getId().toString()));
      vmData.add(new Pair<String,Object>(BaseCmd.Properties.JOB_STATUS.getName(),String.valueOf(asyncJob.getStatus())));
    }
    vmData.add(new Pair<String,Object>(BaseCmd.Properties.ID.getName(),Long.toString(vmInstance.getId())));
    vmData.add(new Pair<String,Object>(BaseCmd.Properties.NAME.getName(),vmInstance.getName()));
    vmData.add(new Pair<String,Object>(BaseCmd.Properties.CREATED.getName(),getDateString(vmInstance.getCreated())));
    vmData.add(new Pair<String,Object>(BaseCmd.Properties.IP_ADDRESS.getName(),vmInstance.getPrivateIpAddress()));
    if (vmInstance.getState() != null) {
      vmData.add(new Pair<String,Object>(BaseCmd.Properties.STATE.getName(),vmInstance.getState().toString()));
    }
    Account acct=getManagementServer().findAccountById(Long.valueOf(vmInstance.getAccountId()));
    if (acct != null) {
      vmData.add(new Pair<String,Object>(BaseCmd.Properties.ACCOUNT.getName(),acct.getAccountName()));
      vmData.add(new Pair<String,Object>(BaseCmd.Properties.DOMAIN_ID.getName(),Long.toString(acct.getDomainId())));
      vmData.add(new Pair<String,Object>(BaseCmd.Properties.DOMAIN.getName(),getManagementServer().findDomainIdById(acct.getDomainId()).getName()));
    }
    vmData.add(new Pair<String,Object>(BaseCmd.Properties.HA_ENABLE.getName(),Boolean.valueOf(vmInstance.isHaEnabled()).toString()));
    if (vmInstance.getDisplayName() != null) {
      vmData.add(new Pair<String,Object>(BaseCmd.Properties.DISPLAY_NAME.getName(),vmInstance.getDisplayName()));
    }
 else {
      vmData.add(new Pair<String,Object>(BaseCmd.Properties.DISPLAY_NAME.getName(),vmInstance.getName()));
    }
    if (vmInstance.getGroup() != null) {
      vmData.add(new Pair<String,Object>(BaseCmd.Properties.GROUP.getName(),vmInstance.getGroup()));
    }
    vmData.add(new Pair<String,Object>(BaseCmd.Properties.ZONE_ID.getName(),Long.valueOf(vmInstance.getDataCenterId()).toString()));
    vmData.add(new Pair<String,Object>(BaseCmd.Properties.ZONE_NAME.getName(),getManagementServer().findDataCenterById(vmInstance.getDataCenterId()).getName()));
    if ((isAdmin == true) && (vmInstance.getHostId() != null)) {
      vmData.add(new Pair<String,Object>(BaseCmd.Properties.HOST_ID.getName(),vmInstance.getHostId().toString()));
      vmData.add(new Pair<String,Object>(BaseCmd.Properties.HOST_NAME.getName(),getManagementServer().getHostBy(vmInstance.getHostId()).getName()));
    }
    VMTemplateVO template=getManagementServer().findTemplateById(vmInstance.getTemplateId());
    if (template != null) {
      vmData.add(new Pair<String,Object>(BaseCmd.Properties.TEMPLATE_ID.getName(),Long.valueOf(vmInstance.getTemplateId()).toString()));
      vmData.add(new Pair<String,Object>(BaseCmd.Properties.TEMPLATE_NAME.getName(),template.getName()));
      vmData.add(new Pair<String,Object>(BaseCmd.Properties.TEMPLATE_DISPLAY_TEXT.getName(),template.getDisplayText()));
      vmData.add(new Pair<String,Object>(BaseCmd.Properties.PASSWORD_ENABLED.getName(),template.getEnablePassword()));
    }
 else {
      vmData.add(new Pair<String,Object>(BaseCmd.Properties.TEMPLATE_ID.getName(),"String_Node_Str"));
      vmData.add(new Pair<String,Object>(BaseCmd.Properties.TEMPLATE_NAME.getName(),"String_Node_Str"));
      vmData.add(new Pair<String,Object>(BaseCmd.Properties.TEMPLATE_DISPLAY_TEXT.getName(),"String_Node_Str"));
      vmData.add(new Pair<String,Object>(BaseCmd.Properties.PASSWORD_ENABLED.getName(),false));
    }
    if (vmInstance.getIsoId() != null) {
      VMTemplateVO iso=getManagementServer().findTemplateById(vmInstance.getIsoId().longValue());
      if (iso != null) {
        vmData.add(new Pair<String,Object>(BaseCmd.Properties.ISO_ID.getName(),Long.valueOf(vmInstance.getIsoId()).toString()));
        vmData.add(new Pair<String,Object>(BaseCmd.Properties.ISO_NAME.getName(),iso.getName()));
      }
    }
    ServiceOfferingVO offering=getManagementServer().findServiceOfferingById(vmInstance.getServiceOfferingId());
    vmData.add(new Pair<String,Object>(BaseCmd.Properties.SERVICE_OFFERING_ID.getName(),Long.valueOf(vmInstance.getServiceOfferingId()).toString()));
    vmData.add(new Pair<String,Object>(BaseCmd.Properties.SERVICE_OFFERING_NAME.getName(),offering.getName()));
    vmData.add(new Pair<String,Object>(BaseCmd.Properties.CPU_NUMBER.getName(),Integer.valueOf(offering.getCpu()).toString()));
    vmData.add(new Pair<String,Object>(BaseCmd.Properties.CPU_SPEED.getName(),Integer.valueOf(offering.getSpeed()).toString()));
    vmData.add(new Pair<String,Object>(BaseCmd.Properties.MEMORY.getName(),Integer.valueOf(offering.getRamSize()).toString()));
    DecimalFormat decimalFormat=new DecimalFormat("String_Node_Str");
    String cpuUsed=null;
    VmStats vmStats=getManagementServer().getVmStatistics(vmInstance.getId());
    if (vmStats != null) {
      float cpuUtil=(float)vmStats.getCPUUtilization();
      cpuUsed=decimalFormat.format(cpuUtil) + "String_Node_Str";
      vmData.add(new Pair<String,Object>(BaseCmd.Properties.CPU_USED.getName(),cpuUsed));
      long networkKbRead=(long)vmStats.getNetworkReadKBs();
      vmData.add(new Pair<String,Object>(BaseCmd.Properties.NETWORK_KB_READ.getName(),networkKbRead));
      long networkKbWrite=(long)vmStats.getNetworkWriteKBs();
      vmData.add(new Pair<String,Object>(BaseCmd.Properties.NETWORK_KB_WRITE.getName(),networkKbWrite));
    }
    vmData.add(new Pair<String,Object>(BaseCmd.Properties.GUEST_OS_ID.getName(),vmInstance.getGuestOSId()));
    GuestOSVO guestOs=getManagementServer().getGuestOs(vmInstance.getGuestOSId());
    if (guestOs != null)     vmData.add(new Pair<String,Object>(BaseCmd.Properties.OS_TYPE_ID.getName(),guestOs.getCategoryId()));
    vmData.add(new Pair<String,Object>(BaseCmd.Properties.NETWORK_GROUP_LIST.getName(),getManagementServer().getNetworkGroupsNamesForVm(vmInstance.getId())));
    VolumeVO rootVolume=getManagementServer().findRootVolume(vmInstance.getId());
    vmData.add(new Pair<String,Object>(BaseCmd.Properties.ROOT_DEVICE_ID.getName(),rootVolume.getDeviceId()));
    StoragePoolVO storagePool=getManagementServer().findPoolById(rootVolume.getPoolId());
    vmData.add(new Pair<String,Object>(BaseCmd.Properties.ROOT_DEVICE_TYPE.getName(),storagePool.getPoolType().toString()));
    vmTag[i++]=vmData;
  }
  List<Pair<String,Object>> returnTags=new ArrayList<Pair<String,Object>>();
  Pair<String,Object> vmTags=new Pair<String,Object>("String_Node_Str",vmTag);
  returnTags.add(vmTags);
  return returnTags;
}