From 969bbb02a9cd65b72b867cf9ee91c3e35ca95a0c Mon Sep 17 00:00:00 2001 From: Abhinandan Prateek Date: Mon, 19 Jan 2015 11:29:22 +0530 Subject: [PATCH] CLOUDSTACK-8164: Look for all host to avoid NPE (cherry picked from commit d8def3dc0b6e0099380448d61aa44d5052128acf) Signed-off-by: Rohit Yadav Conflicts: engine/storage/src/org/apache/cloudstack/storage/helper/VMSnapshotHelperImpl.java --- .../cloudstack/storage/helper/VMSnapshotHelperImpl.java | 6 +++--- server/src/com/cloud/vm/snapshot/VMSnapshotManagerImpl.java | 2 ++ 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/engine/storage/src/org/apache/cloudstack/storage/helper/VMSnapshotHelperImpl.java b/engine/storage/src/org/apache/cloudstack/storage/helper/VMSnapshotHelperImpl.java index b1c78dce202..07fa5051f7a 100644 --- a/engine/storage/src/org/apache/cloudstack/storage/helper/VMSnapshotHelperImpl.java +++ b/engine/storage/src/org/apache/cloudstack/storage/helper/VMSnapshotHelperImpl.java @@ -79,9 +79,9 @@ public class VMSnapshotHelperImpl implements VMSnapshotHelper { return vm.getHostId(); // check if lastHostId is available - if(vm.getLastHostId() != null){ - HostVO lastHost = hostDao.findById(vm.getLastHostId()); - if(lastHost.getStatus() == com.cloud.host.Status.Up && !lastHost.isInMaintenanceStates()) + if (vm.getLastHostId() != null) { + HostVO lastHost = hostDao.findByIdIncludingRemoved(vm.getLastHostId()); + if (lastHost.getStatus() == com.cloud.host.Status.Up && !lastHost.isInMaintenanceStates()) return lastHost.getId(); } diff --git a/server/src/com/cloud/vm/snapshot/VMSnapshotManagerImpl.java b/server/src/com/cloud/vm/snapshot/VMSnapshotManagerImpl.java index d57659a6a84..84ecbf0be99 100644 --- a/server/src/com/cloud/vm/snapshot/VMSnapshotManagerImpl.java +++ b/server/src/com/cloud/vm/snapshot/VMSnapshotManagerImpl.java @@ -766,6 +766,8 @@ public class VMSnapshotManagerImpl extends ManagerBase implements VMSnapshotMana if (jobResult != null) { if (jobResult instanceof ConcurrentOperationException) throw (ConcurrentOperationException)jobResult; + else if (jobResult instanceof InvalidParameterValueException) + throw (InvalidParameterValueException)jobResult; else if (jobResult instanceof Throwable) throw new RuntimeException("Unexpected exception", (Throwable)jobResult); }