Buggy code:
public abstract class FormComponent extends LabeledWebMarkupContainer implements IFormVisitorParticipant { public abstract static class AbstractVisitor implements FormComponent . IVisitor { public Object formComponent ( IFormVisitorParticipant component ) { } protected abstract void onFormComponent ( FormComponent formComponent ) { } } public static interface IVisitor { public Object formComponent ( IFormVisitorParticipant formComponent ) { } } private class MessageSource implements IErrorMessageSource { public String getMessage ( String key ) { } public String substitute ( String string , Map vars ) throws IllegalStateException { } private Map addDefaultVars ( Map params ) { } private Object getLabel ( ) { } } private final class RequiredStateChange extends Change { private static final long serialVersionUID = 1L ; private final boolean required = isRequired ( ) ; public void undo ( ) { } } private class ValidatableAdapter implements IValidatable { public void error ( IValidationError error ) { } public Object getValue ( ) { } public boolean isValid ( ) { } } public static String VALUE_SEPARATOR = ";" ; private static final String [ ] EMPTY_STRING_ARRAY = new String [ ] { "" } ; 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 static final long serialVersionUID = 1L ; protected static final short FLAG_CONVERT_EMPTY_INPUT_STRING_TO_NULL = FLAG_RESERVED1 ; public static final void visitFormComponentsPostOrder ( Component component , final FormComponent . IVisitor visitor ) { } private static final Object visitFormComponentsPostOrderHelper ( Component component , final FormComponent . IVisitor visitor ) { } private transient Object convertedInput ; private String rawInput = FormComponent . NO_RAW_INPUT ; private String typeName ; private Object validators = null ; public FormComponent ( final String id ) { } public FormComponent ( final String id , IModel model ) { } public final FormComponent add ( final IValidator validator ) { } public final boolean checkRequired ( ) { } public final void clearInput ( ) { } public void error ( IValidationError error ) { } public final Object getConvertedInput ( ) { } public final void setConvertedInput ( Object convertedInput ) { } public Form getForm ( ) { } public String getInput ( ) { } public String [ ] getInputAsArray ( ) { } public String getInputName ( ) { } public final String getRawInput ( ) { } public final Class getType ( ) { } public String getValidatorKeyPrefix ( ) { } public final List getValidators ( ) { } public final String getValue ( ) { } public final boolean hasRawInput ( ) { } public final void inputChanged ( ) { } public final void invalid ( ) { } public boolean isInputNullable ( ) { } public boolean isMultiPart ( ) { } public final boolean isPersistent ( ) { } public boolean isRequired ( ) { } public final boolean isValid ( ) { } public boolean processChildren ( ) { } public final void processInput ( ) { } public FormComponent setLabel ( IModel labelModel ) { } public void setModelValue ( final String value ) { } public void setModelValue ( final String [ ] value ) { } public final FormComponent setPersistent ( final boolean persistent ) { } public final FormComponent setRequired ( final boolean required ) { } public final FormComponent setType ( Class type ) { } public void updateModel ( ) { } public final void valid ( ) { } public final void validate ( ) { validateRequired ( ) ; if ( isValid ( ) ) { convertInput ( ) ; <START_BUG> if ( ( ( ( isValid ( ) ) && ( isRequired ( ) ) ) && ( ( getConvertedInput ( ) ) == null ) ) && ( ! ( isInputNullable ( ) ) ) ) { <END_BUG> reportRequiredError ( ) ; } if ( isValid ( ) ) { validateValidators ( ) ; } } } private void validators_add ( final IValidator validator ) { } private IValidator validators_get ( int index ) { } private int validators_size ( ) { } protected void convertInput ( ) { } protected Object convertValue ( String [ ] value ) throws ConversionException { } protected List getBehaviors ( Class type ) { } protected String getModelValue ( ) { } protected final int inputAsInt ( ) { } protected final int inputAsInt ( final int defaultValue ) { } protected final int [ ] inputAsIntArray ( ) { } protected void internalOnModelChanged ( ) { } protected void onComponentTag ( final ComponentTag tag ) { } protected void onDetach ( ) { } protected void onDisabled ( final ComponentTag tag ) { } protected void onInvalid ( ) { } protected void onValid ( ) { } protected boolean supportsPersistence ( ) { } protected final void validateRequired ( ) { } private void reportRequiredError ( ) { } protected final void validateValidators ( ) { } }

Fix:
if ( ( ( ( isValid ( ) ) && ( isRequired ( ) ) ) && ( ( getConvertedInput ( ) ) == null ) ) && ( isInputNullable ( ) ) ) {