Source:
<code>protected void executeVmCommand() { oldVm = getVm(); if (isUpdateVmTemplateVersion) { updateVmTemplateVersion(); return; } if (isRunningConfigurationNeeded()) { createNextRunSnapshot(); } VmHandler.warnMemorySizeLegal(getParameters().getVm().getStaticData(), getEffectiveCompatibilityVersion()); getVmStaticDao().incrementDbGeneration(getVm().getId()); newVmStatic = getParameters().getVmStaticData(); newVmStatic.setCreationDate(oldVm.getStaticData().getCreationDate()); <START> registerRollbackHandler(new HostedEngineEditNotifier(getParameters().getVm())); <END> VM userVm = new VM(); userVm.setStaticData(new VmStatic(newVmStatic)); if (newVmStatic.getCreationDate().equals(DateTime.getMinValue())) { newVmStatic.setCreationDate(new Date()); } if (getVm().isRunningOrPaused() && !getVm().isHostedEngine()) { if (!VmHandler.copyNonEditableFieldsToDestination(oldVm.getStaticData(), newVmStatic, isHotSetEnabled())) { throw new EngineException(EngineError.FAILED_UPDATE_RUNNING_VM); } } updateVmNetworks(); updateVmNumaNodes(); if (isHotSetEnabled()) { hotSetCpus(userVm); updateCurrentMemory(userVm); } final List<Guid> oldIconIds = IconUtils.updateVmIcon( oldVm.getStaticData(), newVmStatic, getParameters().getVmLargeIcon()); getVmStaticDao().update(newVmStatic); if (getVm().isNotRunning()) { updateVmPayload(); VmDeviceUtils.updateVmDevices(getParameters(), oldVm); updateWatchdog(); updateRngDevice(); updateGraphicsDevices(); updateVmHostDevices(); updateDeviceAddresses(); } IconUtils.removeUnusedIcons(oldIconIds); VmHandler.updateVmInitToDB(getParameters().getVmStaticData()); checkTrustedService(); setSucceeded(true); }</code><technical_language>1. pass getVm() instead of getParameters().getVm() (we assure pool id is passed in parameters vm). 2. check if vm is vm if skip registeration operation</technical_language>

Target:
protected void executeVmCommand() { oldVm = getVm(); if (isUpdateVmTemplateVersion) { updateVmTemplateVersion(); return; } if (isRunningConfigurationNeeded()) { createNextRunSnapshot(); } VmHandler.warnMemorySizeLegal(getParameters().getVm().getStaticData(), getEffectiveCompatibilityVersion()); getVmStaticDao().incrementDbGeneration(getVm().getId()); newVmStatic = getParameters().getVmStaticData(); newVmStatic.setCreationDate(oldVm.getStaticData().getCreationDate()); if (getVm().isHostedEngine()) { registerRollbackHandler(new HostedEngineEditNotifier(getVm())); } VM userVm = new VM(); userVm.setStaticData(new VmStatic(newVmStatic)); if (newVmStatic.getCreationDate().equals(DateTime.getMinValue())) { newVmStatic.setCreationDate(new Date()); } if (getVm().isRunningOrPaused() && !getVm().isHostedEngine()) { if (!VmHandler.copyNonEditableFieldsToDestination(oldVm.getStaticData(), newVmStatic, isHotSetEnabled())) { throw new EngineException(EngineError.FAILED_UPDATE_RUNNING_VM); } } updateVmNetworks(); updateVmNumaNodes(); if (isHotSetEnabled()) { hotSetCpus(userVm); updateCurrentMemory(userVm); } final List<Guid> oldIconIds = IconUtils.updateVmIcon( oldVm.getStaticData(), newVmStatic, getParameters().getVmLargeIcon()); getVmStaticDao().update(newVmStatic); if (getVm().isNotRunning()) { updateVmPayload(); VmDeviceUtils.updateVmDevices(getParameters(), oldVm); updateWatchdog(); updateRngDevice(); updateGraphicsDevices(); updateVmHostDevices(); updateDeviceAddresses(); } IconUtils.removeUnusedIcons(oldIconIds); VmHandler.updateVmInitToDB(getParameters().getVmStaticData()); checkTrustedService(); setSucceeded(true); }