logger.info("Returned as " + siteNodeId + " was requested");
return null;
}
String key = "" + siteNodeId;
SiteNodeVO siteNodeVO = (SiteNodeVO)CacheController.getCachedObjectFromAdvancedCache("siteNodeCache", key);
if(siteNodeVO != null)
{
if(siteNodeVO.getChildCount() == null)
logger.info("Fail: a siteNodeVO was read the old way...");
//logger.info("There was an cached siteNodeVO:" + siteNodeVO);
}
else
{
StringBuffer SQL = new StringBuffer();
Timer t = new Timer();
if(CmsPropertyHandler.getUseShortTableNames() != null && CmsPropertyHandler.getUseShortTableNames().equalsIgnoreCase("true"))
{
SQL.append("CALL SQL select sn.siNoId, sn.name, sn.publishDateTime, sn.expireDateTime, sn.isBranch, sn.isDeleted, sn.parentSiNoId, sn.metaInfoContentId, sn.repositoryId, sn.siNoTypeDefId, sn.creator, (select count(*) from cmSiNo sn2 where sn2.parentSiNoId = sn.siNoId) AS childCount, snv.siNoVerId, snv.sortOrder, snv.isHidden, snv.stateId, snv.isProtected, snv.versionModifier, snv.modifiedDateTime, 0 AS languageId, '' as attributes from cmSiNo sn, cmSiNoVer snv ");
SQL.append("where ");
SQL.append("sn.siNoId = $1 ");
SQL.append("AND snv.siNoId = sn.siNoId ");
SQL.append("AND snv.siNoVerId = ( ");
SQL.append(" select max(siNoVerId) from cmSiNoVer snv2 ");
SQL.append(" WHERE ");
SQL.append(" snv2.siNoId = snv.siNoId AND ");
//SQL.append(" snv2.isActive = $2 AND snv2.stateId >= $3 ");
SQL.append(" snv2.stateId >= $2 ");
SQL.append(" ) ");
SQL.append("order by sn.siNoId DESC AS org.infoglue.cms.entities.structure.impl.simple.SmallestSiteNodeImpl");
}
else
{
SQL.append("CALL SQL select sn.siteNodeId, sn.name, sn.publishDateTime, sn.expireDateTime, sn.isBranch, sn.isDeleted, sn.parentSiteNodeId, sn.metaInfoContentId, sn.repositoryId, sn.siteNodeTypeDefinitionId, sn.creator, (select count(*) from cmSiteNode sn2 where sn2.parentSiteNodeId = sn.siteNodeId) AS childCount, snv.siteNodeVersionId, snv.sortOrder, snv.isHidden, snv.stateId, snv.isProtected, snv.versionModifier, snv.modifiedDateTime, 0 AS languageId, '' as attributes from cmSiteNode sn, cmSiteNodeVersion snv ");
SQL.append("where ");
SQL.append("sn.siteNodeId = $1 ");
SQL.append("AND snv.siteNodeId = sn.siteNodeId ");
SQL.append("AND snv.siteNodeVersionId = ( ");
SQL.append(" select max(siteNodeVersionId) from cmSiteNodeVersion snv2 ");
SQL.append(" WHERE ");
SQL.append(" snv2.siteNodeId = snv.siteNodeId AND ");
//SQL.append(" snv2.isActive = $2 AND snv2.stateId >= $3 ");
SQL.append(" snv2.stateId >= $2 ");
SQL.append(" ) ");
SQL.append("order by sn.siteNodeId DESC AS org.infoglue.cms.entities.structure.impl.simple.SmallestSiteNodeImpl");
}
//System.out.println("SQL:" + SQL);
//logger.info("SQL:" + SQL);
//logger.info("parentSiteNodeId:" + parentSiteNodeId);
//logger.info("showDeletedItems:" + showDeletedItems);
OQLQuery oql = db.getOQLQuery(SQL.toString());
oql.bind(siteNodeId);
//oql.bind(true);
oql.bind(new Integer(CmsPropertyHandler.getOperatingMode()));
QueryResults results = oql.execute(Database.READONLY);
//t.printElapsedTime("Executed query.....");
if (results.hasMore())
{
SiteNode siteNode = (SiteNode)results.next();
siteNodeVO = siteNode.getValueObject();
if(!skipCaching)
{
String siteNodeCacheKey = "" + siteNode.getValueObject().getId();
CacheController.cacheObjectInAdvancedCache("siteNodeCache", siteNodeCacheKey, siteNode.getValueObject());
}
}
else
logger.warn("SiteNode not found: " + siteNodeId);
results.close();
oql.close();
if(siteNodeVO == null)
{
logger.info("Falling back to old forgiving logic for siteNodeId: " + siteNodeId + ". It must be in trouble.");
siteNodeVO = getSiteNodeVOWithIdIfFailed(siteNodeId, db);
}
RequestAnalyser.getRequestAnalyser().registerComponentStatistics("getSmallestSiteNodeVOWithId", t.getElapsedTime());
}
if(siteNodeVO != null && siteNodeVO.getMetaInfoContentId() != null)
metaInfoSiteNodeIdMap.put(siteNodeVO.getMetaInfoContentId(), siteNodeVO.getId());
return siteNodeVO;
}