Updated Branches: refs/heads/4.2 32d076ebc -> af95cfe98
CLOUDSTACK-3942 NPE from findStoragePool method Changes: - Added null checks for podId Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/af95cfe9 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/af95cfe9 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/af95cfe9 Branch: refs/heads/4.2 Commit: af95cfe98e5e17f86ae6d0df3cf363b3ba210e0a Parents: 32d076e Author: Prachi Damle <[email protected]> Authored: Tue Jul 30 16:55:32 2013 -0700 Committer: Prachi Damle <[email protected]> Committed: Tue Jul 30 16:56:21 2013 -0700 ---------------------------------------------------------------------- server/src/com/cloud/storage/StorageManagerImpl.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/af95cfe9/server/src/com/cloud/storage/StorageManagerImpl.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/storage/StorageManagerImpl.java b/server/src/com/cloud/storage/StorageManagerImpl.java index 5cf2b54..f49d20d 100755 --- a/server/src/com/cloud/storage/StorageManagerImpl.java +++ b/server/src/com/cloud/storage/StorageManagerImpl.java @@ -406,6 +406,16 @@ public class StorageManagerImpl extends ManagerBase implements StorageManager, C public StoragePool findStoragePool(DiskProfile dskCh, final DataCenterVO dc, HostPodVO pod, Long clusterId, Long hostId, VMInstanceVO vm, final Set<StoragePool> avoid) { + Long podId = null; + if (pod != null) { + podId = pod.getId(); + } else if (clusterId != null) { + ClusterVO cluster = _clusterDao.findById(clusterId); + if (cluster != null) { + podId = cluster.getPodId(); + } + } + VirtualMachineProfile<VMInstanceVO> profile = new VirtualMachineProfileImpl<VMInstanceVO>(vm); for (StoragePoolAllocator allocator : _storagePoolAllocators) { @@ -413,7 +423,7 @@ public class StorageManagerImpl extends ManagerBase implements StorageManager, C for (StoragePool pool : avoid) { avoidList.addPool(pool.getId()); } - DataCenterDeployment plan = new DataCenterDeployment(dc.getId(), pod.getId(), clusterId, hostId, null, null); + DataCenterDeployment plan = new DataCenterDeployment(dc.getId(), podId, clusterId, hostId, null, null); final List<StoragePool> poolList = allocator.allocateToPool(dskCh, profile, plan, avoidList, 1); if (poolList != null && !poolList.isEmpty()) {
