String componentStructureXML = this.getPageComponentsString(db, templateController, siteNodeId, templateController.getLanguageId(), component.getContentId());
//logger.info("componentStructureXML:" + componentStructureXML);
XmlInfosetBuilder builder = XmlInfosetBuilder.newInstance();
XmlDocument doc = builder.parseReader(new StringReader( componentStructureXML ) );
Map components = getComponentWithXPP3(db, builder, doc.getDocumentElement(), id, templateController, component);
if(components.containsKey(id))
subComponents = (List)components.get(id);
SiteNodeVO parentSiteNodeVO = nodeDeliveryController.getParentSiteNode(db, siteNodeId);
//logger.info("parentSiteNodeVO:" + parentSiteNodeVO);
while((subComponents == null || subComponents.size() == 0) && parentSiteNodeVO != null)
{
//logger.info("parentSiteNodeVO:" + parentSiteNodeVO);
//logger.info("component:" + component);
componentStructureXML = this.getPageComponentsString(db, templateController, parentSiteNodeVO.getId(), templateController.getLanguageId(), component.getContentId());
//logger.info("componentStructureXML:" + componentStructureXML);
builder = XmlInfosetBuilder.newInstance();
doc = builder.parseReader(new StringReader( componentStructureXML ) );
components = getComponentWithXPP3(db, builder, doc.getDocumentElement(), id, templateController, component);
if(components.containsKey(id))
subComponents = (List)components.get(id);
if(subComponents != null)