From 8499560861489c531447d9c765add004336eabd1 Mon Sep 17 00:00:00 2001 From: Wei Zhou Date: Wed, 13 Nov 2019 09:07:28 +0000 Subject: [PATCH] server: Fix NPE while update displayvm on vm with dynamic service offering Steps to reproduce the issue (1) create a custom service offering (2) create a vm with the offering (3) update vm with displayvm=false, returns an error (local) > update virtualmachine id=f33fd06a-7643-40d1-833f-272845d9ba09 displayvm=false Error 530: {"updatevirtualmachineresponse":{"uuidList":[],"errorcode":530,"cserrorcode":9999}} --- server/src/main/java/com/cloud/vm/UserVmManagerImpl.java | 2 +- 1 file changed, 1 insertion(+), 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 bb4246eb7df9..311d236905c0 100644 --- a/server/src/main/java/com/cloud/vm/UserVmManagerImpl.java +++ b/server/src/main/java/com/cloud/vm/UserVmManagerImpl.java @@ -2509,7 +2509,7 @@ protected void updateDisplayVmFlag(Boolean isDisplayVm, Long id, UserVmVO vmInst vmInstance.setDisplayVm(isDisplayVm); // Resource limit changes - ServiceOffering offering = _serviceOfferingDao.findByIdIncludingRemoved(vmInstance.getServiceOfferingId()); + ServiceOffering offering = _serviceOfferingDao.findByIdIncludingRemoved(vmInstance.getId(), vmInstance.getServiceOfferingId()); _resourceLimitMgr.changeResourceCount(vmInstance.getAccountId(), ResourceType.user_vm, isDisplayVm); _resourceLimitMgr.changeResourceCount(vmInstance.getAccountId(), ResourceType.cpu, isDisplayVm, new Long(offering.getCpu())); _resourceLimitMgr.changeResourceCount(vmInstance.getAccountId(), ResourceType.memory, isDisplayVm, new Long(offering.getRamSize()));