Buggy code:
public class CheckBoxMultipleChoice < T > extends ListMultipleChoice < T > { private static final long serialVersionUID = 1L ; private class SuffixChange extends Change { private static final long serialVersionUID = 1L ; final String prevSuffix ; SuffixChange ( String prevSuffix ) { } @ 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//>\n" ; public CheckBoxMultipleChoice ( final String id ) { } public CheckBoxMultipleChoice ( final String id , final List < T > choices ) { } public CheckBoxMultipleChoice ( final String id , final List < T > choices , final IChoiceRenderer < T > renderer ) { } public CheckBoxMultipleChoice ( final String id , IModel < Collection < T > > model , final List < T > choices ) { } public CheckBoxMultipleChoice ( final String id , IModel < Collection < T > > model , final List < T > choices , final IChoiceRenderer < T > renderer ) { } public CheckBoxMultipleChoice ( String id , IModel < List < ? extends T > > choices ) { } public CheckBoxMultipleChoice ( String id , IModel < Collection < T > > model , IModel < List < ? extends T > > choices ) { } public CheckBoxMultipleChoice ( String id , IModel < List < ? extends T > > choices , IChoiceRenderer < T > renderer ) { } public CheckBoxMultipleChoice ( String id , IModel < Collection < T > > model , IModel < List < ? extends T > > choices , IChoiceRenderer < T > renderer ) { } public String getPrefix ( ) { } public final CheckBoxMultipleChoice < T > setPrefix ( final String prefix ) { } public String getSuffix ( ) { } public final CheckBoxMultipleChoice < T > setSuffix ( final String suffix ) { } @ Override protected void onComponentTag ( ComponentTag tag ) { } @ Override protected final void onComponentTagBody ( final MarkupStream markupStream , final ComponentTag openTag ) { final List < ? extends T > choices = CheckBoxMultipleChoice . getChoices ( ) ; final AppendingStringBuffer buffer = new AppendingStringBuffer ( ( 70 * ( ( choices . size ( ) ) + 1 ) ) ) ; final String selected = CheckBoxMultipleChoice . getValue ( ) ; for ( int index = 0 ; index < ( choices . size ( ) ) ; index ++ ) { final T choice = choices . get ( index ) ; Object displayValue = CheckBoxMultipleChoice . getChoiceRenderer ( ) . getDisplayValue ( choice ) ; Class < ? > objectClass = ( displayValue == null ) ? null : displayValue . getClass ( ) ; String label = "" ; if ( ( objectClass != null ) && ( objectClass != ( String . class ) ) ) { IConverter converter = CheckBoxMultipleChoice . getConverter ( objectClass ) ; label = converter . convertToString ( displayValue , CheckBoxMultipleChoice . getLocale ( ) ) ; } else if ( displayValue != null ) { label = displayValue . toString ( ) ; } if ( label != null ) { buffer . append ( getPrefix ( ) ) ; String id = CheckBoxMultipleChoice . getChoiceRenderer ( ) . getIdValue ( choice , index ) ; <START_BUG> final String idAttr = ( ( CheckBoxMultipleChoice . getInputName ( ) ) + "_" ) + id ; <END_BUG> buffer . append ( "<input<seq2seq4repair_space>name=\"" ) . append ( CheckBoxMultipleChoice . getInputName ( ) ) . append ( "\"" ) . append ( "<seq2seq4repair_space>type=\"checkbox\"" ) . append ( ( CheckBoxMultipleChoice . isSelected ( choice , index , selected ) ? "<seq2seq4repair_space>checked=\"checked\"" : "" ) ) . append ( ( CheckBoxMultipleChoice . isEnabled ( ) ? "" : "<seq2seq4repair_space>disabled=\"disabled\"" ) ) . append ( "<seq2seq4repair_space>value=\"" ) . append ( id ) . append ( "\"<seq2seq4repair_space>id=\"" ) . append ( idAttr ) . append ( "\"//>" ) ; String display = label ; if ( CheckBoxMultipleChoice . localizeDisplayValues ( ) ) { display = CheckBoxMultipleChoice . getLocalizer ( ) . getString ( label , this , label ) ; } CharSequence escaped ; if ( CheckBoxMultipleChoice . getEscapeModelStrings ( ) ) { escaped = Strings . escapeMarkup ( display , false , true ) ; } else { escaped = display ; } buffer . append ( "<label<seq2seq4repair_space>for=\"" ) ; buffer . append ( idAttr ) ; buffer . append ( "\">" ) . append ( escaped ) . append ( "<//label>" ) ; buffer . append ( getSuffix ( ) ) ; } } replaceComponentTagBody ( markupStream , openTag , buffer ) ; } @ Deprecated protected final boolean isEscapeLabelMarkup ( ) { } }

Fix:
final String idAttr = ( ( ( ( CheckBoxMultipleChoice . getMarkupId ( ) ) + "-" ) + ( CheckBoxMultipleChoice . getInputName ( ) ) ) + "_" ) + id ;