From c081f60427d63f98f51665f6af5128d47bf92568 Mon Sep 17 00:00:00 2001 From: Vishesh Date: Mon, 22 Apr 2024 22:51:16 +0530 Subject: [PATCH] server: Fix null pointer exception in restore VM (#8930) --- .../main/java/com/cloud/vm/UserVmManagerImpl.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/server/src/main/java/com/cloud/vm/UserVmManagerImpl.java b/server/src/main/java/com/cloud/vm/UserVmManagerImpl.java index 566fcb38fc9..6c8aec0da48 100644 --- a/server/src/main/java/com/cloud/vm/UserVmManagerImpl.java +++ b/server/src/main/java/com/cloud/vm/UserVmManagerImpl.java @@ -7699,8 +7699,19 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir } _accountMgr.checkAccess(caller, null, true, vm); + VMTemplateVO template; + if (newTemplateId != null) { + template = _templateDao.findById(newTemplateId); + if (template == null) { + throw new InvalidParameterValueException("Cannot find template with ID " + newTemplateId); + } + } else { + template = _templateDao.findById(vm.getTemplateId()); + if (template == null) { + throw new InvalidParameterValueException("Cannot find template linked with VM"); + } + } DiskOffering diskOffering = rootDiskOfferingId != null ? validateAndGetDiskOffering(rootDiskOfferingId, vm, caller) : null; - VMTemplateVO template = _templateDao.findById(newTemplateId); if (template.getSize() != null) { String rootDiskSize = details.get(VmDetailConstants.ROOT_DISK_SIZE); Long templateSize = template.getSize();