Buggy code:
public class CheckBoxMultipleChoice < T > extends ListMultipleChoice < T > { private static final long serialVersionUID = 1L ; private String prefix = "" ; private String suffix = "<br//>\n" ; public CheckBoxMultipleChoice ( final String id ) { } public CheckBoxMultipleChoice ( final String id , final List < ? extends T > choices ) { } public CheckBoxMultipleChoice ( final String id , final List < ? extends T > choices , final IChoiceRenderer < ? super T > renderer ) { } public CheckBoxMultipleChoice ( final String id , IModel < ? extends Collection < T > > model , final List < ? extends T > choices ) { } public CheckBoxMultipleChoice ( final String id , IModel < ? extends Collection < T > > model , final List < ? extends T > choices , final IChoiceRenderer < ? super T > renderer ) { } public CheckBoxMultipleChoice ( String id , IModel < ? extends List < ? extends T > > choices ) { } public CheckBoxMultipleChoice ( String id , IModel < ? extends Collection < T > > model , IModel < ? extends List < ? extends T > > choices ) { } public CheckBoxMultipleChoice ( String id , IModel < ? extends List < ? extends T > > choices , IChoiceRenderer < ? super T > renderer ) { } public CheckBoxMultipleChoice ( String id , IModel < ? extends Collection < T > > model , IModel < ? extends List < ? extends T > > choices , IChoiceRenderer < ? super T > renderer ) { } public String getPrefix ( ) { } protected String getPrefix ( int index , T choice ) { } protected String getSuffix ( int index , T choice ) { } 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 public final void onComponentTagBody ( final MarkupStream markupStream , final ComponentTag openTag ) { } @ SuppressWarnings ( "unchecked" ) @ Override protected void appendOptionHtml ( final AppendingStringBuffer buffer , final T choice , int index , final String selected ) { Object displayValue = CheckBoxMultipleChoice . getChoiceRenderer ( ) . getDisplayValue ( choice ) ; Class < ? > objectClass = ( displayValue == null ) ? null : displayValue . getClass ( ) ; String label = "" ; if ( ( objectClass != null ) && ( objectClass != ( String . class ) ) ) { @ SuppressWarnings ( "rawtypes" ) IConverter converter = CheckBoxMultipleChoice . getConverter ( objectClass ) ; label = converter . convertToString ( displayValue , CheckBoxMultipleChoice . getLocale ( ) ) ; } else if ( displayValue != null ) { label = displayValue . toString ( ) ; } if ( label != null ) { buffer . append ( getPrefix ( index , choice ) ) ; String id = CheckBoxMultipleChoice . getChoiceRenderer ( ) . getIdValue ( choice , index ) ; final String idAttr = getCheckBoxMarkupId ( id ) ; buffer . append ( "<input<seq2seq4repair_space>name=\"" ) ; buffer . append ( CheckBoxMultipleChoice . getInputName ( ) ) ; buffer . append ( "\"" ) ; buffer . append ( "<seq2seq4repair_space>type=\"checkbox\"" ) ; if ( CheckBoxMultipleChoice . isSelected ( choice , index , selected ) ) { buffer . append ( "<seq2seq4repair_space>checked=\"checked\"" ) ; } <START_BUG> if ( CheckBoxMultipleChoice . isDisabled ( choice , index , selected ) ) { <END_BUG> buffer . append ( "<seq2seq4repair_space>disabled=\"disabled\"" ) ; } buffer . append ( "<seq2seq4repair_space>value=\"" ) ; buffer . append ( id ) ; buffer . append ( "\"<seq2seq4repair_space>id=\"" ) ; buffer . append ( idAttr ) ; buffer . append ( "\"//>" ) ; String display = label ; if ( CheckBoxMultipleChoice . localizeDisplayValues ( ) ) { display = CheckBoxMultipleChoice . getLocalizer ( ) . getString ( label , this , label ) ; } final CharSequence escaped = ( CheckBoxMultipleChoice . getEscapeModelStrings ( ) ) ? Strings . escapeMarkup ( display ) : display ; buffer . append ( "<label<seq2seq4repair_space>for=\"" ) ; buffer . append ( idAttr ) ; buffer . append ( "\">" ) . append ( escaped ) . append ( "<//label>" ) ; buffer . append ( getSuffix ( index , choice ) ) ; } } protected String getCheckBoxMarkupId ( String id ) { } }

Fix:
if ( ( CheckBoxMultipleChoice . isDisabled ( choice , index , selected ) ) || ( ! ( CheckBoxMultipleChoice . isEnabledInHierarchy ( ) ) ) ) {