{
final RenderBox newSectionBox = (RenderBox) sectionBox.derive(false);
// first insert the saved ones ...
for (int i = slots.size() - slotCounter - 1; i >= 0; i--)
{
final RenderNode node = slots.get(i);
final RenderNode derived = node.derive(true);
if (logger.isDebugEnabled())
{
logger.debug("Rescued[" + i + "]: " + slots.get(i));
}
newSectionBox.addGeneratedChild(derived);
}
// and then add the newly generated ones ..
RenderNode child = sectionBox.getFirstChild();
while (child != null)
{
final RenderNode next = child.getNext();
sectionBox.remove(child);
newSectionBox.addGeneratedChild(child);
if (logger.isDebugEnabled())
{
logger.debug("New[" + "]: " + child);
}
child = next;
}
sectionBox = newSectionBox;
}
}
else
{
for (int i = slotCounter; i < slots.size(); i++)
{
final RenderNode node = slots.get(i);
sectionBox.addGeneratedChild(node.derive(true));
}
}
}
if (logger.isDebugEnabled())