Buggy code:
public class ObjectTypeAttributeDefinition extends SimpleAttributeDefinition { private final AttributeDefinition [ ] valueTypes ; private final String suffix ; private ObjectTypeAttributeDefinition ( final String name , final String xmlName , final String suffix , final AttributeDefinition [ ] valueTypes , final boolean allowNull , final ParameterCorrector corrector , final String [ ] alternatives , final String [ ] requires , final AttributeAccess ... flags ) { } private ObjectTypeAttributeDefinition ( final String name , final String xmlName , final String suffix , final AttributeDefinition [ ] valueTypes , final boolean allowNull , final ParameterValidator validator , final ParameterCorrector corrector , final String [ ] alternatives , final String [ ] requires , final AttributeAccess ... flags ) { } @ Override public ModelNode parse ( final String value , final XMLStreamReader reader ) throws XMLStreamException { } @ Override public ModelNode addResourceAttributeDescription ( ResourceBundle bundle , String prefix , ModelNode resourceDescription ) { } public ModelNode addOperationParameterDescription ( final ModelNode resourceDescription , final String operationName , final ResourceDescriptionResolver resolver , final Locale locale , final ResourceBundle bundle ) { } public ModelNode addResourceAttributeDescription ( final ModelNode resourceDescription , final ResourceDescriptionResolver resolver , final Locale locale , final ResourceBundle bundle ) { } @ Override public ModelNode addOperationParameterDescription ( ResourceBundle bundle , String prefix , ModelNode operationDescription ) { } protected void addValueTypeDescription ( final ModelNode node , final String prefix , final ResourceBundle bundle ) { } @ Override public void marshallAsElement ( final ModelNode resourceModel , final XMLStreamWriter writer ) throws XMLStreamException { } private ModelNode getValueTypeDescription ( final AttributeDefinition valueType , final boolean forOperation ) { final ModelNode result = new ModelNode ( ) ; result . get ( TYPE ) . set ( valueType . getType ( ) ) ; result . get ( DESCRIPTION ) ; result . get ( EXPRESSIONS_ALLOWED ) . set ( valueType . isAllowExpression ( ) ) ; if ( forOperation ) { result . get ( REQUIRED ) . set ( ( ! ( valueType . isAllowNull ( ) ) ) ) ; } <START_BUG> result . get ( NILLABLE ) . set ( isAllowNull ( ) ) ; <END_BUG> final ModelNode defaultValue = valueType . getDefaultValue ( ) ; if ( ( ( ! forOperation ) && ( defaultValue != null ) ) && ( defaultValue . isDefined ( ) ) ) { result . get ( DEFAULT ) . set ( defaultValue ) ; } MeasurementUnit measurementUnit = valueType . getMeasurementUnit ( ) ; if ( ( measurementUnit != null ) && ( measurementUnit != ( MeasurementUnit . NONE ) ) ) { result . get ( UNIT ) . set ( measurementUnit . getName ( ) ) ; } final String [ ] alternatives = valueType . getAlternatives ( ) ; if ( alternatives != null ) { for ( final String alternative : alternatives ) { result . get ( ALTERNATIVES ) . add ( alternative ) ; } } final String [ ] requires = valueType . getRequires ( ) ; if ( requires != null ) { for ( final String required : requires ) { result . get ( REQUIRES ) . add ( required ) ; } } final ParameterValidator validator = valueType . getValidator ( ) ; if ( validator instanceof MinMaxValidator ) { MinMaxValidator minMax = ( ( MinMaxValidator ) ( validator ) ) ; Long min = minMax . getMin ( ) ; if ( min != null ) { switch ( valueType . getType ( ) ) { case STRING : case LIST : case OBJECT : result . get ( MIN_LENGTH ) . set ( min ) ; break ; default : result . get ( MIN ) . set ( min ) ; } } Long max = minMax . getMax ( ) ; if ( max != null ) { switch ( valueType . getType ( ) ) { case STRING : case LIST : case OBJECT : result . get ( MAX_LENGTH ) . set ( max ) ; break ; default : result . get ( MAX ) . set ( max ) ; } } } if ( validator instanceof AllowedValuesValidator ) { AllowedValuesValidator avv = ( ( AllowedValuesValidator ) ( validator ) ) ; List < ModelNode > allowed = avv . getAllowedValues ( ) ; if ( allowed != null ) { for ( ModelNode ok : allowed ) { result . get ( ALLOWED ) . add ( ok ) ; } } } return result ; } public static class Builder { private final String name ; private String suffix ; private final AttributeDefinition [ ] valueTypes ; private ParameterValidator validator ; private ParameterCorrector corrector ; private String xmlName ; private boolean allowNull ; private String [ ] alternatives ; private String [ ] requires ; private Flag [ ] flags ; public Builder ( final String name , final AttributeDefinition ... valueTypes ) { } public static ObjectTypeAttributeDefinition . Builder of ( final String name , final AttributeDefinition ... valueTypes ) { } public static ObjectTypeAttributeDefinition . Builder of ( final String name , final AttributeDefinition [ ] valueTypes , final AttributeDefinition [ ] moreValueTypes ) { } public ObjectTypeAttributeDefinition build ( ) { } public ObjectTypeAttributeDefinition . Builder setAllowNull ( final boolean allowNull ) { } public ObjectTypeAttributeDefinition . Builder setAlternates ( final String ... alternates ) { } public ObjectTypeAttributeDefinition . Builder setCorrector ( final ParameterCorrector corrector ) { } public void setValidator ( ParameterValidator validator ) { } public ObjectTypeAttributeDefinition . Builder setFlags ( final AttributeAccess ... flags ) { } public ObjectTypeAttributeDefinition . Builder setRequires ( final String ... requires ) { } public ObjectTypeAttributeDefinition . Builder setSuffix ( final String suffix ) { } public ObjectTypeAttributeDefinition . Builder setXmlName ( final String xmlName ) { } } }

Fix:
result . get ( NILLABLE ) . set ( valueType . isAllowNull ( ) ) ;