From a4dbcf4880f7e40a0cb4cef97540e16b65e17e05 Mon Sep 17 00:00:00 2001 From: alena Date: Mon, 27 Jun 2011 09:36:14 -0700 Subject: [PATCH] bug 10456: fixed NPE - get account info from the volume when create private template from volume status 10456: resolved fixed --- server/src/com/cloud/vm/UserVmManagerImpl.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/server/src/com/cloud/vm/UserVmManagerImpl.java b/server/src/com/cloud/vm/UserVmManagerImpl.java index b249a994220..cdca5f631f3 100755 --- a/server/src/com/cloud/vm/UserVmManagerImpl.java +++ b/server/src/com/cloud/vm/UserVmManagerImpl.java @@ -1455,9 +1455,13 @@ public class UserVmManagerImpl implements UserVmManager, UserVmService, Manager origTemplateInstallPath, templateId, name); } else if (volumeId != null) { VolumeVO volume = _volsDao.findById(volumeId); + if( volume == null ) { throw new CloudRuntimeException("Unable to find volume for Id " + volumeId); } + + accountId = volume.getAccountId(); + if( volume.getPoolId() == null ) { _templateDao.remove(templateId); throw new CloudRuntimeException("Volume " + volumeId + " is empty, can't create template on it"); @@ -1471,7 +1475,7 @@ public class UserVmManagerImpl implements UserVmManager, UserVmService, Manager String secondaryStorageURL = secondaryStorageHost.getStorageUrl(); pool = _storagePoolDao.findById(volume.getPoolId()); - cmd = new CreatePrivateTemplateFromVolumeCommand(secondaryStorageURL, templateId, volume.getAccountId(), + cmd = new CreatePrivateTemplateFromVolumeCommand(secondaryStorageURL, templateId, accountId, command.getTemplateName(), uniqueName, volume.getPath(), vmName); } else {