Buggy code:
public abstract class FormComponent extends WebMarkupContainer { private static final long serialVersionUID = 1L ; 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 final 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 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 final void setPersistent ( final boolean persistent ) { } public void updateModel ( ) { } public final void valid ( ) { } final void clearInput ( ) { } protected final void checkRequired ( ) { if ( isRequired ( ) ) { final String input = getInput ( ) ; <START_BUG> if ( ( input == null ) && ( isInputNullable ( ) ) ) { <END_BUG> return ; } if ( Strings . isEmpty ( input ) ) { error ( Collections . singletonList ( "RequiredValidator" ) , new HashMap ( ) ) ; } } } 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 onModelChanged ( ) { } 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 ( ) { } public final FormComponent setRequired ( final boolean required ) { } public boolean isRequired ( ) { } public final Object getConvertedInput ( ) { } protected void onEndRequest ( ) { } public final Class getType ( ) { } public final FormComponent setType ( Class type ) { } public String getValidatorKeyPrefix ( ) { } public final void error ( List resourceKeys , Map args ) { } }

Fix:
if ( ( input == null ) && ( ! ( isInputNullable ( ) ) ) ) {