From 68b5440d442aa5946cd3f37b6b7581e582946e68 Mon Sep 17 00:00:00 2001 From: Rohit Yadav Date: Thu, 5 Feb 2015 17:30:27 +0530 Subject: [PATCH] fix NPE cases, throw exceptions early on Signed-off-by: Rohit Yadav --- .../cloudstack/framework/jobs/impl/AsyncJobManagerImpl.java | 2 +- .../hypervisor/kvm/resource/LibvirtComputingResource.java | 2 ++ .../cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java | 3 +++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/framework/jobs/src/org/apache/cloudstack/framework/jobs/impl/AsyncJobManagerImpl.java b/framework/jobs/src/org/apache/cloudstack/framework/jobs/impl/AsyncJobManagerImpl.java index 89e08004ae8..e7d95a99c6a 100644 --- a/framework/jobs/src/org/apache/cloudstack/framework/jobs/impl/AsyncJobManagerImpl.java +++ b/framework/jobs/src/org/apache/cloudstack/framework/jobs/impl/AsyncJobManagerImpl.java @@ -698,7 +698,7 @@ public class AsyncJobManagerImpl extends ManagerBase implements AsyncJobManager, @Override public Object unmarshallResultObject(AsyncJob job) { - if(job.getResult() != null) + if(job != null && job.getResult() != null) return JobSerializerHelper.fromObjectSerializedString(job.getResult()); return null; } diff --git a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java index 6b38856e4b7..f2b3c6341be 100755 --- a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java +++ b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java @@ -4027,6 +4027,8 @@ public class LibvirtComputingResource extends ServerResourceBase implements Serv diskdef.defBlockBasedDisk(device, devId, DiskDef.diskBus.VIRTIO); diskdef.setQemuDriver(false); vm.getDevices().addDevice(diskdef); + } else { + throw new InternalErrorException("Error while mapping RBD device on host"); } } } diff --git a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java index 767c462aade..9da833e4595 100644 --- a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java +++ b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java @@ -363,6 +363,9 @@ public class LibvirtStorageAdaptor implements StorageAdaptor { storage.create(0); } LibvirtStoragePoolDef spd = getStoragePoolDef(conn, storage); + if (spd == null) { + throw new CloudRuntimeException("Unable to parse the storage pool definition for storage pool " + uuid); + } StoragePoolType type = null; if (spd.getPoolType() == LibvirtStoragePoolDef.poolType.NETFS) { type = StoragePoolType.NetworkFilesystem;