Buggy code:
@ Override public void undo ( ) { } @ Override public String toString ( ) { } } private class PrefixChange extends Change { private static final long serialVersionUID = 1L ; private final String prevPrefix ; PrefixChange ( String prevSuffix ) { } @ Override public void undo ( ) { } @ Override public String toString ( ) { } } private String prefix = "" ; private String suffix = "<br<seq2seq4repair_space>//>\n" ; public RadioChoice ( final String id ) { } public RadioChoice ( final String id , final List < T > choices ) { } public RadioChoice ( final String id , final List < T > choices , final IChoiceRenderer < T > renderer ) { } public RadioChoice ( final String id , IModel < T > model , final List < T > choices ) { } public RadioChoice ( final String id , IModel < T > model , final List < T > choices , final IChoiceRenderer < T > renderer ) { } public RadioChoice ( String id , IModel < List < ? extends T > > choices ) { } public RadioChoice ( String id , IModel < T > model , IModel < List < ? extends T > > choices ) { } public RadioChoice ( String id , IModel < List < ? extends T > > choices , IChoiceRenderer < T > renderer ) { } public RadioChoice ( String id , IModel < T > model , IModel < List < ? extends T > > choices , IChoiceRenderer < T > renderer ) { } @ Override protected void onComponentTag ( ComponentTag tag ) { } public void onSelectionChanged ( ) { } protected void onSelectionChanged ( Object newSelection ) { } protected boolean wantOnSelectionChangedNotifications ( ) { } @ Override protected boolean getStatelessHint ( ) { } public String getPrefix ( ) { } public final RadioChoice < T > setPrefix ( String prefix ) { } public String getSuffix ( ) { } public final RadioChoice < T > setSuffix ( String suffix ) { } @ Override protected final void onComponentTagBody ( final MarkupStream markupStream , final ComponentTag openTag ) { final List < ? extends T > choices = RadioChoice . getChoices ( ) ; final AppendingStringBuffer buffer = new AppendingStringBuffer ( ( ( ( choices . size ( ) ) + 1 ) * 70 ) ) ; final String selected = RadioChoice . getValue ( ) ; for ( int index = 0 ; index < ( choices . size ( ) ) ; index ++ ) { final T choice = choices . get ( index ) ; Object displayValue = RadioChoice . getChoiceRenderer ( ) . getDisplayValue ( choice ) ; Class < ? > objectClass = ( displayValue == null ) ? null : displayValue . getClass ( ) ; String label = "" ; if ( ( objectClass != null ) && ( objectClass != ( String . class ) ) ) { final IConverter converter = RadioChoice . getConverter ( objectClass ) ; label = converter . convertToString ( displayValue , RadioChoice . getLocale ( ) ) ; } else if ( displayValue != null ) { label = displayValue . toString ( ) ; } if ( label != null ) { buffer . append ( getPrefix ( ) ) ; String id = RadioChoice . getChoiceRenderer ( ) . getIdValue ( choice , index ) ; <START_BUG> final String idAttr = ( ( RadioChoice . getMarkupId ( ) ) + "_" ) + id ; <END_BUG> boolean enabled = ( RadioChoice . isEnabledInHierarchy ( ) ) && ( ! ( RadioChoice . isDisabled ( choice , index , selected ) ) ) ; buffer . append ( "<input<seq2seq4repair_space>name=\"" ) . append ( RadioChoice . getInputName ( ) ) . append ( "\"" ) . append ( "<seq2seq4repair_space>type=\"radio\"" ) . append ( ( RadioChoice . isSelected ( choice , index , selected ) ? "<seq2seq4repair_space>checked=\"checked\"" : "" ) ) . append ( ( enabled ? "" : "<seq2seq4repair_space>disabled=\"disabled\"" ) ) . append ( "<seq2seq4repair_space>value=\"" ) . append ( id ) . append ( "\"<seq2seq4repair_space>id=\"" ) . append ( idAttr ) . append ( "\"" ) ; if ( wantOnSelectionChangedNotifications ( ) ) { CharSequence url = urlFor ( INTERFACE ) ; Form < ? > form = RadioChoice . findParent ( Form . class ) ; if ( form != null ) { RequestContext rc = RequestContext . get ( ) ; if ( rc . isPortletRequest ( ) ) { url = ( ( org . apache . wicket . protocol . http . portlet . PortletRequestContext ) ( rc ) ) . getLastEncodedPath ( ) ; } buffer . append ( "<seq2seq4repair_space>onclick=\"" ) . append ( form . getJsForInterfaceUrl ( url ) ) . append ( ";\"" ) ; } else { buffer . append ( "<seq2seq4repair_space>onclick=\"window.location.href=\'" ) . append ( url ) . append ( ( ( ( url . toString ( ) . indexOf ( '?' ) ) > ( - 1 ) ? "&amp;" : "?" ) + ( RadioChoice . getInputName ( ) ) ) ) . append ( "=" ) . append ( id ) . append ( "\';\"" ) ; } } buffer . append ( "//>" ) ; String display = label ; if ( RadioChoice . localizeDisplayValues ( ) ) { display = RadioChoice . getLocalizer ( ) . getString ( label , this , label ) ; } final CharSequence escaped ; if ( RadioChoice . getEscapeModelStrings ( ) ) { escaped = Strings . escapeMarkup ( display , false , true ) ; } else { escaped = display ; } buffer . append ( "<label<seq2seq4repair_space>for=\"" ) . append ( idAttr ) . append ( "\">" ) . append ( escaped ) . append ( "<//label>" ) ;

Fix:
final String idAttr = ( ( RadioChoice . getMarkupId ( ) ) + "-" ) + id ;