diff --git a/server/src/com/cloud/template/TemplateManagerImpl.java b/server/src/com/cloud/template/TemplateManagerImpl.java index 25aace9bf28..7aab492b0a1 100755 --- a/server/src/com/cloud/template/TemplateManagerImpl.java +++ b/server/src/com/cloud/template/TemplateManagerImpl.java @@ -1645,7 +1645,7 @@ public class TemplateManagerImpl extends ManagerBase implements TemplateManager, Long vmId = volume.getInstanceId(); if ( vmId != null ) { UserVmVO userVm = _userVmDao.findById(vmId); - if (userVm == null) { + if (userVm != null) { _userVmDao.loadDetails(userVm); details.putAll(userVm.getDetails()); } @@ -1655,11 +1655,8 @@ public class TemplateManagerImpl extends ManagerBase implements TemplateManager, details.putAll(cmd.getDetails()); } if( !details.isEmpty()) { - List tdetails = new ArrayList(); - for (String key : details.keySet()) { - tdetails.add(new VMTemplateDetailVO(template.getId(), key, details.get(key))); - } - this._templateDetailsDao.saveDetails(tdetails); + privateTemplate.setDetails(details); + _tmpltDao.saveDetails(privateTemplate); } _resourceLimitMgr.incrementResourceCount(templateOwner.getId(), ResourceType.template);