From 39e25da30ca6853fa92f04a48160425d7d233548 Mon Sep 17 00:00:00 2001 From: Derek Hulley Date: Tue, 24 Aug 2010 10:17:49 +0000 Subject: [PATCH] Fixed ALF-2854: User Usage Queries use read-write methods on QNameDAO - Was fixed on 3.3, but problem crept into de-Hibernate porting again for 3.4 git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@21959 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../domain/usage/ibatis/UsageDAOImpl.java | 46 +++++++++++++++---- 1 file changed, 37 insertions(+), 9 deletions(-) diff --git a/source/java/org/alfresco/repo/domain/usage/ibatis/UsageDAOImpl.java b/source/java/org/alfresco/repo/domain/usage/ibatis/UsageDAOImpl.java index 003f797d28..8b95f22b1b 100644 --- a/source/java/org/alfresco/repo/domain/usage/ibatis/UsageDAOImpl.java +++ b/source/java/org/alfresco/repo/domain/usage/ibatis/UsageDAOImpl.java @@ -33,6 +33,7 @@ import org.alfresco.repo.domain.qname.QNameDAO; import org.alfresco.repo.domain.usage.AbstractUsageDAOImpl; import org.alfresco.repo.domain.usage.UsageDeltaEntity; import org.alfresco.service.cmr.repository.StoreRef; +import org.alfresco.util.Pair; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.orm.ibatis.SqlMapClientTemplate; @@ -108,9 +109,18 @@ public class UsageDAOImpl extends AbstractUsageDAOImpl @Override protected void selectUsersWithoutUsage(StoreRef storeRef, MapHandler resultsCallback) { - long personTypeQNameEntityId = qnameDAO.getOrCreateQName(ContentModel.TYPE_PERSON).getFirst(); - long usernamePropQNameEntityId = qnameDAO.getOrCreateQName(ContentModel.PROP_USERNAME).getFirst(); - long sizeCurrentPropQNameEntityId = qnameDAO.getOrCreateQName(ContentModel.PROP_SIZE_CURRENT).getFirst(); + Pair personTypeQNamePair = qnameDAO.getQName(ContentModel.TYPE_PERSON); + Pair usernamePropQNamePair = qnameDAO.getQName(ContentModel.PROP_USERNAME); + Pair sizeCurrentPropQNamePair = qnameDAO.getQName(ContentModel.PROP_SIZE_CURRENT); + + if (personTypeQNamePair == null || usernamePropQNamePair == null || sizeCurrentPropQNamePair == null) + { + return; // The statics have not been used, so there can be no results + } + + Long personTypeQNameEntityId = personTypeQNamePair.getFirst(); + Long usernamePropQNameEntityId = usernamePropQNamePair.getFirst(); + Long sizeCurrentPropQNameEntityId = sizeCurrentPropQNamePair.getFirst(); Map params = new HashMap(5); params.put("personTypeQNameID", personTypeQNameEntityId); // cm:person (type) @@ -132,9 +142,18 @@ public class UsageDAOImpl extends AbstractUsageDAOImpl @Override protected void selectUsersWithUsage(StoreRef storeRef, MapHandler resultsCallback) { - long personTypeQNameEntityId = qnameDAO.getOrCreateQName(ContentModel.TYPE_PERSON).getFirst(); - long usernamePropQNameEntityId = qnameDAO.getOrCreateQName(ContentModel.PROP_USERNAME).getFirst(); - long sizeCurrentPropQNameEntityId = qnameDAO.getOrCreateQName(ContentModel.PROP_SIZE_CURRENT).getFirst(); + Pair personTypeQNamePair = qnameDAO.getQName(ContentModel.TYPE_PERSON); + Pair usernamePropQNamePair = qnameDAO.getQName(ContentModel.PROP_USERNAME); + Pair sizeCurrentPropQNamePair = qnameDAO.getQName(ContentModel.PROP_SIZE_CURRENT); + + if (personTypeQNamePair == null || usernamePropQNamePair == null || sizeCurrentPropQNamePair == null) + { + return; // The statics have not been used, so there can be no results + } + + Long personTypeQNameEntityId = personTypeQNamePair.getFirst(); + Long usernamePropQNameEntityId = usernamePropQNamePair.getFirst(); + Long sizeCurrentPropQNameEntityId = sizeCurrentPropQNamePair.getFirst(); Map params = new HashMap(5); params.put("personTypeQNameID", personTypeQNameEntityId); // cm:person (type) @@ -156,9 +175,18 @@ public class UsageDAOImpl extends AbstractUsageDAOImpl @Override protected void selectUserContentSizesForStore(StoreRef storeRef, MapHandler resultsCallback) { - long contentTypeQNameEntityId = qnameDAO.getOrCreateQName(ContentModel.TYPE_CONTENT).getFirst(); - long ownerPropQNameEntityId = qnameDAO.getOrCreateQName(ContentModel.PROP_OWNER).getFirst(); - long contentPropQNameEntityId = qnameDAO.getOrCreateQName(ContentModel.PROP_CONTENT).getFirst(); + Pair contentTypeQNamePair = qnameDAO.getQName(ContentModel.TYPE_CONTENT); + Pair ownerPropQNamePair = qnameDAO.getQName(ContentModel.PROP_OWNER); + Pair contentPropQNamePair = qnameDAO.getQName(ContentModel.PROP_CONTENT); + + if (contentTypeQNamePair == null || ownerPropQNamePair == null || contentPropQNamePair == null) + { + return; // The statics have not been used, so there can be no results + } + + Long contentTypeQNameEntityId = contentTypeQNamePair.getFirst(); + Long ownerPropQNameEntityId = ownerPropQNamePair.getFirst(); + Long contentPropQNameEntityId = contentPropQNamePair.getFirst(); MapRowHandler rowHandler = new MapRowHandler(resultsCallback);