Buggy code:
public class RadioChoice extends AbstractSingleSelectChoice implements IOnChangeListener { private static final long serialVersionUID = 1L ; private class SuffixChange extends Change { private static final long serialVersionUID = 1L ; final String prevSuffix ; SuffixChange ( String prevSuffix ) { } public void undo ( ) { } public String toString ( ) { } } private class PrefixChange extends Change { private static final long serialVersionUID = 1L ; private final String prevPrefix ; PrefixChange ( String prevSuffix ) { } public void undo ( ) { } 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 choices ) { } public RadioChoice ( final String id , final List choices , final IChoiceRenderer renderer ) { } public RadioChoice ( final String id , IModel model , final List choices ) { } public RadioChoice ( final String id , IModel model , final List choices , final IChoiceRenderer renderer ) { } public RadioChoice ( String id , IModel choices ) { } public RadioChoice ( String id , IModel model , IModel choices ) { } public RadioChoice ( String id , IModel choices , IChoiceRenderer renderer ) { } public RadioChoice ( String id , IModel model , IModel choices , IChoiceRenderer renderer ) { } public void onSelectionChanged ( ) { } protected void onSelectionChanged ( Object newSelection ) { } protected boolean wantOnSelectionChangedNotifications ( ) { } public final String getPrefix ( ) { } public final RadioChoice setPrefix ( String prefix ) { } public final String getSuffix ( ) { } public final RadioChoice setSuffix ( String suffix ) { } protected final void onComponentTagBody ( final MarkupStream markupStream , final ComponentTag openTag ) { final StringBuffer buffer = new StringBuffer ( ) ; final List choices = getChoices ( ) ; for ( int index = 0 ; index < ( choices . size ( ) ) ; index ++ ) { final Object choice = choices . get ( index ) ; <START_BUG> final String label = getChoiceRenderer ( ) . getDisplayValue ( choice ) ; <END_BUG> if ( label != null ) { buffer . append ( getPrefix ( ) ) ; String id = getChoiceRenderer ( ) . getIdValue ( choice , index ) ; final String idAttr = ( ( getInputName ( ) ) + "_" ) + id ; buffer . append ( ( ( ( ( ( ( ( ( ( "<input<seq2seq4repair_space>name=\"" + ( getInputName ( ) ) ) + "\"" ) + "<seq2seq4repair_space>type=\"radio\"" ) + ( isSelected ( choice , index ) ? "<seq2seq4repair_space>checked=\"checked\"" : "" ) ) + "<seq2seq4repair_space>value=\"" ) + id ) + "\"<seq2seq4repair_space>id=\"" ) + idAttr ) + "\"" ) ) ; if ( wantOnSelectionChangedNotifications ( ) ) { final String url = urlFor ( IOnChangeListener . class ) ; try { Form form = getForm ( ) ; buffer . append ( ( ( "<seq2seq4repair_space>onclick=\"" + ( form . getJsForInterfaceUrl ( url ) ) ) + ";\"" ) ) ; } catch ( WicketRuntimeException ex ) { buffer . append ( ( ( ( ( ( ( "<seq2seq4repair_space>onclick=\"" + url ) + "&" ) + ( getInputName ( ) ) ) + "=" ) + id ) + "\';\"" ) ) ; } } buffer . append ( "//>" ) ; String display = getLocalizer ( ) . getString ( label , this , label ) ; String escaped = Strings . escapeMarkup ( display , false , true ) ; buffer . append ( ( ( ( ( "<label<seq2seq4repair_space>for=\"" + idAttr ) + "\">" ) + escaped ) + "<//label>" ) ) ; buffer . append ( getSuffix ( ) ) ; } } replaceComponentTagBody ( markupStream , openTag , buffer . toString ( ) ) ; } }

Fix:
final String label = ( ( String ) ( getConverter ( ) . convert ( getChoiceRenderer ( ) . getDisplayValue ( choice ) , String . class ) ) ) ;