diff --git a/server/src/com/cloud/vm/UserVmManagerImpl.java b/server/src/com/cloud/vm/UserVmManagerImpl.java index a970478727a..812f8384aba 100755 --- a/server/src/com/cloud/vm/UserVmManagerImpl.java +++ b/server/src/com/cloud/vm/UserVmManagerImpl.java @@ -3486,8 +3486,8 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Use public void collectVmDiskStatistics (UserVmVO userVm) { // support KVM only util 2013.06.25 if (!userVm.getHypervisorType().equals(HypervisorType.KVM)) - return; - // Collect vm disk statistics from host before stopping Vm + return; + s_logger.debug("Collect vm disk statistics from host before stopping Vm"); long hostId = userVm.getHostId(); List vmNames = new ArrayList(); vmNames.add(userVm.getInstanceName()); @@ -3509,8 +3509,9 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Use try { txn.start(); HashMap> vmDiskStatsByName = diskStatsAnswer.getVmDiskStatsMap(); + if (vmDiskStatsByName == null) + return; List vmDiskStats = vmDiskStatsByName.get(userVm.getInstanceName()); - if (vmDiskStats == null) return; @@ -4982,7 +4983,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Use @Override public void prepareStop(VirtualMachineProfile profile) { UserVmVO vm = _vmDao.findById(profile.getId()); - if (vm.getState() == State.Running) + if (vm != null && vm.getState() == State.Stopping) collectVmDiskStatistics(vm); }