Buggy code:
public abstract class Component implements Serializable { private static Log log = LogFactory . getLog ( Component . class ) ; private AttributeModifier attributeModifiers = null ; private String id ; private boolean isVersioned = true ; private IModel model ; private MarkupContainer parent ; private boolean shouldEscapeModelStrings = true ; private boolean visible = true ; public static interface IVisitor { public static Object CONTINUE_TRAVERSAL = null ; public static Object STOP_TRAVERSAL = new Object ( ) ; public Object component ( Component component ) { } } public Component ( final String id ) { } public Component ( final String id , final IModel model ) { } public final Component add ( final AttributeModifier modifier ) { } public final void debug ( final String message ) { } public final void error ( final String message ) { } public final void fatal ( final String message ) { } public final MarkupContainer findParent ( final Class c ) { } public final MarkupContainer findParentWithAssociatedMarkup ( ) { } public final Application getApplication ( ) { } public final ApplicationPages getApplicationPages ( ) { } public final ApplicationSettings getApplicationSettings ( ) { } public final String getClassRelativePath ( ) { } public IConverter getConverter ( ) { } public final FeedbackMessage getFeedbackMessage ( ) { } public String getId ( ) { } public final Locale getLocale ( ) { } public final Localizer getLocalizer ( ) { } public IModel getModel ( ) { } public final Object getModelLock ( ) { } public final Object getModelObject ( ) { } public final String getModelObjectAsString ( ) { } public final Page getPage ( ) { } public final IPageFactory getPageFactory ( ) { } public final String getPageRelativePath ( ) { } public final MarkupContainer getParent ( ) { } public final String getPath ( ) { } public final Request getRequest ( ) { } public final RequestCycle getRequestCycle ( ) { } public final Response getResponse ( ) { } public final Object getRootModelObject ( ) { } public Session getSession ( ) { } public final boolean getShouldEscapeModelStrings ( ) { } public final String getStyle ( ) { } public final boolean hasErrorMessage ( ) { } public final boolean hasFeedbackMessage ( ) { } public final void info ( final String message ) { } public boolean isAncestorOf ( final Component component ) { } public boolean isVersioned ( ) { } public boolean isVisible ( ) { } public final void modelChanged ( ) { } public final void modelChangeImpending ( ) { } public void remove ( ) { } public final void render ( ) { } public final boolean sameRootModel ( final Component component ) { } public final boolean sameRootModel ( final IModel model ) { } public final void setModel ( final IModel model ) { } public final void setModelObject ( final Object object ) { } public final Component setShouldEscapeModelStrings ( final boolean escapeMarkup ) { } public void setVersioned ( boolean isVersioned ) { } public final Component setVisible ( final boolean visible ) { } public String toString ( ) { } public final void warn ( final String message ) { } protected final void checkComponentTag ( final ComponentTag tag , final String name ) { } protected final void checkComponentTagAttribute ( final ComponentTag tag , final String key , final String value ) { } protected void detachModel ( ) { } protected final String exceptionMessage ( final String message ) { } protected MarkupStream findMarkupStream ( ) { } protected final Page findPage ( ) { } protected IModel initModel ( ) { } protected void internalOnModelChanged ( ) { } protected void internalOnModelChanging ( ) { } protected void onBeginRender ( ) { } protected void onComponentTag ( final ComponentTag tag ) { } protected void onComponentTagBody ( final MarkupStream markupStream , final ComponentTag openTag ) { } protected void onEndRender ( ) { } protected void onModelChanged ( ) { } protected void onModelChanging ( ) { } protected abstract void onRender ( ) { } protected final void renderComponent ( final MarkupStream markupStream ) { } protected final void renderComponentTag ( ComponentTag tag ) { final ApplicationSettings settings = getApplication ( ) . getSettings ( ) ; if ( ( ! ( tag instanceof ComponentWicketTag ) ) || ( ! ( settings . getStripWicketTags ( ) ) ) ) { if ( ( ( attributeModifiers ) != null ) && ( ( tag . getType ( ) ) != ( XmlTag . CLOSE ) ) ) { tag = tag . mutable ( ) ; for ( AttributeModifier current = attributeModifiers ; current != null ; current = current . next ) { <START_BUG> current . replaceAttibuteValue ( tag ) ; <END_BUG> } } if ( settings . getStripComponentIds ( ) ) { tag = tag . mutable ( ) ; tag . removeComponentId ( settings . getComponentIdAttribute ( ) , settings . getApplyDefaultComponentId ( ) ) ; } getResponse ( ) . write ( tag ) ; } } protected final void renderComponentTag ( final MarkupStream markupStream ) { } protected final void replaceComponentTagBody ( final MarkupStream markupStream , final ComponentTag tag , final String body ) { } protected final Object visitParents ( final Class c , final Component . IVisitor visitor ) { } Component get ( final String path ) { } void internalOnBeginRender ( ) { } void internalOnEndRender ( ) { } final void renderClosingComponentTag ( final MarkupStream markupStream , final ComponentTag openTag ) { } final void setParent ( final MarkupContainer parent ) { } private final void detachModels ( ) { } private Object getRootModel ( final IModel model ) { } private final void setId ( final String id ) { } }

Fix:
current . replaceAttibuteValue ( this , tag ) ;