Buggy code:
public abstract class FormComponent extends WebMarkupContainer { private static final long serialVersionUID = 1L ; public static String VALUE_SEPARATOR = ";" ; public static interface IVisitor { public void formComponent ( FormComponent formComponent ) { } } private final class RequiredStateChange extends Change { private static final long serialVersionUID = 1L ; private final boolean required = isRequired ( ) ; public void undo ( ) { } } private final class DisabledAttributeModel extends Model { private static final long serialVersionUID = 1L ; public Object getObject ( Component component ) { } } private static final class DisabledAttributeModifier extends AttributeModifier { private static final long serialVersionUID = 1L ; public DisabledAttributeModifier ( FormComponent . DisabledAttributeModel model ) { } } private Class type ; protected static final short FLAG_CONVERT_EMPTY_INPUT_STRING_TO_NULL = FLAG_RESERVED1 ; private static final short FLAG_PERSISTENT = FLAG_RESERVED2 ; private static final short FLAG_REQUIRED = FLAG_RESERVED3 ; private static final String NO_RAW_INPUT = "[-NO-RAW-INPUT-]" ; private String rawInput = FormComponent . NO_RAW_INPUT ; private Object validators = null ; private IModel labelModel = null ; private transient Object convertedInput ; public FormComponent ( final String id ) { } public FormComponent ( final String id , IModel model ) { } public final FormComponent add ( final IValidator validator ) { } public Form getForm ( ) { } public FormComponent setLabel ( final IModel labelModel ) { } public IModel getLabel ( ) { } public String getInput ( ) { } public String getInputName ( ) { } public final List getValidators ( ) { } public final String getValue ( ) { } public final String getRawInput ( ) { } public final boolean hasRawInput ( ) { } public final void invalid ( ) { } public boolean isMultiPart ( ) { } public final boolean isPersistent ( ) { } public final boolean isValid ( ) { } public final boolean isValidated ( ) { } public boolean isInputNullable ( ) { } public void setModelValue ( final String value ) { } public void setModelValue ( final String [ ] value ) { } public final FormComponent setPersistent ( final boolean persistent ) { } public void updateModel ( ) { } public final void valid ( ) { } final void clearInput ( ) { } protected final void checkRequired ( ) { } protected final void convert ( ) { } protected Object convertValue ( String [ ] value ) throws ConversionException { } public final void validate ( ) { } protected final void checkValidators ( ) { } protected String getModelValue ( ) { } protected final int inputAsInt ( ) { } protected final int inputAsInt ( final int defaultValue ) { } protected final int [ ] inputAsIntArray ( ) { } protected final String [ ] inputAsStringArray ( ) { } protected void onComponentTag ( final ComponentTag tag ) { } protected void onInvalid ( ) { } protected void internalOnModelChanged ( ) { } protected void onValid ( ) { } protected boolean supportsPersistence ( ) { } private void validators_add ( final IValidator validator ) { } private IValidator validators_get ( int index ) { } private int validators_size ( ) { } public final void inputChanged ( ) { if ( ( isVisibleInHierarchy ( ) ) && ( isEnabled ( ) ) ) { final String [ ] input = inputAsStringArray ( ) ; if ( input != null ) { <START_BUG> rawInput = StringList . valueOf ( input ) . join ( ";" ) ; <END_BUG> } else if ( isInputNullable ( ) ) { rawInput = null ; } else { rawInput = FormComponent . NO_RAW_INPUT ; } } } public final FormComponent setRequired ( final boolean required ) { } public boolean isRequired ( ) { } public final Object getConvertedInput ( ) { } protected void onDetach ( ) { } public final Class getType ( ) { } public final FormComponent setType ( Class type ) { } public String getValidatorKeyPrefix ( ) { } public final void error ( List resourceKeys , Map args ) { } public final void processInput ( ) { } }

Fix:
rawInput = StringList . valueOf ( input ) . join ( FormComponent . VALUE_SEPARATOR ) ;