diff --git a/server/src/com/cloud/vm/UserVmManagerImpl.java b/server/src/com/cloud/vm/UserVmManagerImpl.java index 251c203f13b..73d46028e29 100755 --- a/server/src/com/cloud/vm/UserVmManagerImpl.java +++ b/server/src/com/cloud/vm/UserVmManagerImpl.java @@ -3488,8 +3488,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()); @@ -3511,8 +3511,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; @@ -4980,7 +4981,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); }