int status = this.tag.doStartTag();
if (this.tag instanceof IterationTag)
{
if (status != Tag.SKIP_BODY)
{
BodyContent body = null;
try
{
IterationTag iterationTag = (IterationTag) this.tag;
if ((status == BodyTag.EVAL_BODY_BUFFERED)
&& (this.tag instanceof BodyTag))
{
BodyTag bodyTag = (BodyTag) this.tag;
body = pageContext.pushBody();
if (log.isDebugEnabled())
{
log.debug("Pushed body content ["
+ body.getString() + "]");
}
bodyTag.setBodyContent(body);
bodyTag.doInitBody();
}
int iteration = 0;
do
{
fireEvalBody(iteration, body);
if (log.isDebugEnabled())
{
log.debug("Body evaluated for the ["
+ iteration + "] time");
}
status = iterationTag.doAfterBody();
iteration++;
} while (status == IterationTag.EVAL_BODY_AGAIN);
if (log.isDebugEnabled())
{
log.debug("Body skipped");
}
fireSkipBody();
}
finally
{
if (body != null)
{
if (log.isDebugEnabled())
{
log.debug("Popping body content ["
+ body.getString() + "]");
}
pageContext.popBody();
body = null;
}
}