Buggy code:
public abstract class MarkupContainer extends Component { private static final Log log = LogFactory . getLog ( MarkupContainer . class ) ; private Object children ; private transient MarkupStream markupStream ; public MarkupContainer ( final String id ) { } public MarkupContainer ( final String id , IModel model ) { } public MarkupContainer add ( final Component child ) { } public boolean autoAdd ( final Component component ) { } public final boolean contains ( final Component component , final boolean recurse ) { } public final Component get ( final String path ) { } public String getMarkupType ( ) { } public void internalAdd ( final Component child ) { } public void internalBeginRequest ( ) { } public void internalEndRequest ( ) { } public final Iterator iterator ( ) { } public final Iterator iterator ( Comparator comparator ) { } public void remove ( final Component component ) { } public void remove ( final String id ) { } public void removeAll ( ) { } public final void renderAssociatedMarkup ( final String openTagName , final String exceptionMessage ) { } public MarkupContainer replace ( final Component child ) { } final void resetMarkupStreams ( ) { } public Component setModel ( final IModel model ) { } public final int size ( ) { } public String toString ( ) { } public String toString ( final boolean detailed ) { } public final Object visitChildren ( final Class c , final IVisitor visitor ) { } public final Object visitChildren ( final IVisitor visitor ) { } protected final MarkupStream findMarkupStream ( ) { } protected final MarkupStream getAssociatedMarkupStream ( ) { } protected MarkupStream getMarkupStream ( ) { } protected void onComponentTagBody ( final MarkupStream markupStream , final ComponentTag openTag ) { } protected void onRender ( final MarkupStream markupStream ) { } protected void renderAll ( final MarkupStream markupStream ) { } protected final void renderComponentTagBody ( final MarkupStream markupStream , final ComponentTag openTag ) { } protected final void setMarkupStream ( final MarkupStream markupStream ) { } final boolean hasAssociatedMarkup ( ) { } private final void addedComponent ( final Component component ) { } private final void children_add ( final Component child ) { } private final Component children_get ( int index ) { } private final Component children_get ( final String id ) { } private final int children_indexOf ( Component child ) { } private final Component children_remove ( Component component ) { } private final Component children_remove ( int index ) { } private final Component children_set ( int index , Component child ) { } private final int children_size ( ) { } private final Component put ( final Component child ) { } private final void removedComponent ( final Component component ) { } private final void renderNext ( final MarkupStream markupStream ) { final MarkupElement element = markupStream . get ( ) ; if ( ( element instanceof ComponentTag ) && ( ! ( markupStream . atCloseTag ( ) ) ) ) { final ComponentTag tag = ( ( ComponentTag ) ( element ) ) ; final String id = tag . getId ( ) ; final Component component = get ( id ) ; if ( component != null ) { <START_BUG> component . render ( ) ; <END_BUG> } else { MarkupContainer container = this ; while ( container != null ) { if ( container instanceof IComponentResolver ) { if ( ( ( IComponentResolver ) ( container ) ) . resolve ( this , markupStream , tag ) ) { return ; } } container = container . findParent ( MarkupContainer . class ) ; } final List componentResolvers = this . getApplication ( ) . getPageSettings ( ) . getComponentResolvers ( ) ; final Iterator iterator = componentResolvers . iterator ( ) ; while ( iterator . hasNext ( ) ) { final IComponentResolver resolver = ( ( IComponentResolver ) ( iterator . next ( ) ) ) ; if ( resolver . resolve ( this , markupStream , tag ) ) { return ; } } if ( ( "child" . equals ( tag . getName ( ) ) ) && ( ( tag . getNamespace ( ) ) != null ) ) { markupStream . throwMarkupException ( ( ( "Classes<seq2seq4repair_space>of<seq2seq4repair_space>base<seq2seq4repair_space>pages<seq2seq4repair_space>which<seq2seq4repair_space>" + ( "require<seq2seq4repair_space>inherited<seq2seq4repair_space>markup<seq2seq4repair_space>may<seq2seq4repair_space>not<seq2seq4repair_space>be<seq2seq4repair_space>used<seq2seq4repair_space>directly.<seq2seq4repair_space>" + "You<seq2seq4repair_space>must<seq2seq4repair_space>instantiate<seq2seq4repair_space>the<seq2seq4repair_space>child<seq2seq4repair_space>pages<seq2seq4repair_space>instead:<seq2seq4repair_space>" ) ) + ( this ) ) ) ; } markupStream . throwMarkupException ( ( ( ( ( ( ( ( "Unable<seq2seq4repair_space>to<seq2seq4repair_space>find<seq2seq4repair_space>component<seq2seq4repair_space>with<seq2seq4repair_space>id<seq2seq4repair_space>'" + id ) + "'<seq2seq4repair_space>in<seq2seq4repair_space>" ) + ( this ) ) + ".<seq2seq4repair_space>This<seq2seq4repair_space>means<seq2seq4repair_space>that<seq2seq4repair_space>you<seq2seq4repair_space>declared<seq2seq4repair_space>wicket:id=" ) + id ) + "<seq2seq4repair_space>in<seq2seq4repair_space>your<seq2seq4repair_space>markup,<seq2seq4repair_space>but<seq2seq4repair_space>that<seq2seq4repair_space>you<seq2seq4repair_space>either<seq2seq4repair_space>did<seq2seq4repair_space>not<seq2seq4repair_space>add<seq2seq4repair_space>the<seq2seq4repair_space>" ) + "component<seq2seq4repair_space>to<seq2seq4repair_space>your<seq2seq4repair_space>page<seq2seq4repair_space>at<seq2seq4repair_space>all,<seq2seq4repair_space>or<seq2seq4repair_space>that<seq2seq4repair_space>the<seq2seq4repair_space>hierarchy<seq2seq4repair_space>does<seq2seq4repair_space>not<seq2seq4repair_space>match." ) ) ; } } else { if ( MarkupContainer . log . isDebugEnabled ( ) ) { MarkupContainer . log . debug ( "Rendering<seq2seq4repair_space>raw<seq2seq4repair_space>markup" ) ; } getResponse ( ) . write ( element . toString ( ) ) ; markupStream . next ( ) ; } } public boolean isTransparent ( ) { } }

Fix:
component . render ( markupStream ) ;