if (--skipLevel > 0) {
return;
}
}
Tag tag = (Tag) tagStack.pop();
if (tag != null) {
ComponentSelector tagSelector = (ComponentSelector)tagSelectorStack.pop();
try {
if (saxFragment != null) {
// Start Iteration
IterationTag iterTag = (IterationTag) tag;
XMLDeserializer xmlDeserializer = null;
try {
xmlDeserializer = (XMLDeserializer) manager.lookup(XMLDeserializer.ROLE);
xmlDeserializer.setConsumer(this);
// BodyTag Support
XMLConsumer backup = this.currentConsumer;
if (tag instanceof BodyTag) {
SaxBuffer content = new SaxBuffer();
this.currentConsumer = content;
((BodyTag)tag).setBodyContent(new BodyContent(content, backup));
((BodyTag)tag).doInitBody();
}
do {
xmlDeserializer.deserialize(saxFragment);
} while (iterTag.doAfterBody() != Tag.SKIP_BODY);
// BodyTag Support
if (tag instanceof BodyTag) {
this.currentConsumer = backup;
}
} catch (ServiceException e) {
throw new SAXException("Can't obtain XMLDeserializer", e);
} finally {
if (xmlDeserializer != null) {
manager.release(xmlDeserializer);
}
}
}
tag.doEndTag(namespaceURI, localName, qName);
currentTag = tag.getParent();
if (tag == this.currentConsumer) {
popConsumer();
}
} finally {