diff --git a/server/src/main/java/com/cloud/configuration/ConfigurationManagerImpl.java b/server/src/main/java/com/cloud/configuration/ConfigurationManagerImpl.java index cfc7e129de2..4a183bacd8f 100755 --- a/server/src/main/java/com/cloud/configuration/ConfigurationManagerImpl.java +++ b/server/src/main/java/com/cloud/configuration/ConfigurationManagerImpl.java @@ -3222,12 +3222,11 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati } final Account account = _accountDao.findById(user.getAccountId()); if (account.getType() == Account.ACCOUNT_TYPE_DOMAIN_ADMIN) { - final List details = _serviceOfferingDetailsDao.findDetails(offering.getId(), ApiConstants.DOMAIN_ID); - if (details.isEmpty()) { + List existingDomainIds = diskOfferingDetailsDao.findDomainIds(offeringId); + if (existingDomainIds.isEmpty()) { throw new InvalidParameterValueException("Unable to delete public service offering by id " + userId + " because it is domain-admin"); } - for (final ServiceOfferingDetailsVO detail : details) { - final Long domainId = Long.valueOf(detail.getValue(), 0); + for (Long domainId : existingDomainIds) { if (!_domainDao.isChildDomain(account.getDomainId(), domainId)) { throw new InvalidParameterValueException("Unable to delete service offering by another domain admin with id " + userId); }