Buggy code:
public abstract class AttributeDefinition { protected static final Set < ModelType > COMPLEX_TYPES = Collections . unmodifiableSet ( EnumSet . of ( LIST , OBJECT , PROPERTY ) ) ; private final String name ; private final String xmlName ; private final ModelType type ; private final boolean allowNull ; private final boolean allowExpression ; private final ModelNode defaultValue ; private final MeasurementUnit measurementUnit ; private final String [ ] alternatives ; private final String [ ] requires ; private final ParameterCorrector valueCorrector ; private final ParameterValidator validator ; private final EnumSet < AttributeAccess . Flag > flags ; protected final AttributeMarshaller attributeMarshaller ; private final boolean resourceOnly ; private final DeprecationData deprecationData ; protected AttributeDefinition ( String name , String xmlName , final ModelNode defaultValue , final ModelType type , final boolean allowNull , final boolean allowExpression , final MeasurementUnit measurementUnit , final ParameterValidator validator , final String [ ] alternatives , final String [ ] requires , final AttributeAccess ... flags ) { } protected AttributeDefinition ( String name , String xmlName , final ModelNode defaultValue , final ModelType type , final boolean allowNull , final boolean allowExpression , final MeasurementUnit measurementUnit , final ParameterCorrector valueCorrector , final ParameterValidator validator , boolean validateNull , final String [ ] alternatives , final String [ ] requires , AttributeMarshaller attributeMarshaller , boolean resourceOnly , DeprecationData deprecationData , final AttributeAccess ... flags ) { } public String getName ( ) { } public String getXmlName ( ) { } public ModelType getType ( ) { } public boolean isAllowNull ( ) { } public boolean isAllowExpression ( ) { } public ModelNode getDefaultValue ( ) { } public MeasurementUnit getMeasurementUnit ( ) { } public ParameterValidator getValidator ( ) { } public String [ ] getAlternatives ( ) { } public String [ ] getRequires ( ) { } public EnumSet < AttributeAccess . Flag > getFlags ( ) { } public boolean isMarshallable ( final ModelNode resourceModel ) { } public boolean isMarshallable ( final ModelNode resourceModel , final boolean marshallDefault ) { } public ModelNode validateOperation ( final ModelNode operationObject ) throws OperationFailedException { } public final void validateAndSet ( ModelNode operationObject , final ModelNode model ) throws OperationFailedException { } @ Deprecated public ModelNode validateResolvedOperation ( final ModelNode operationObject ) throws OperationFailedException { } public ModelNode resolveModelAttribute ( final OperationContext context , final ModelNode model ) throws OperationFailedException { } public ModelNode resolveModelAttribute ( final ExpressionResolver resolver , final ModelNode model ) throws OperationFailedException { } public boolean isAllowed ( final ModelNode operationObject ) { } public boolean isRequired ( final ModelNode operationObject ) { } public boolean hasAlternative ( final ModelNode operationObject ) { } public void marshallAsElement ( final ModelNode resourceModel , final XMLStreamWriter writer ) throws XMLStreamException { } public void marshallAsElement ( final ModelNode resourceModel , final boolean marshallDefault , final XMLStreamWriter writer ) throws XMLStreamException { } public ModelNode addResourceAttributeDescription ( final ResourceBundle bundle , final String prefix , final ModelNode resourceDescription ) { } public ModelNode addResourceAttributeDescription ( final ModelNode resourceDescription , final ResourceDescriptionResolver resolver , final Locale locale , final ResourceBundle bundle ) { } public ModelNode addOperationParameterDescription ( final ResourceBundle bundle , final String prefix , final ModelNode operationDescription ) { } public ModelNode addOperationParameterDescription ( final ModelNode resourceDescription , final String operationName , final ResourceDescriptionResolver resolver , final Locale locale , final ResourceBundle bundle ) { } public String getAttributeTextDescription ( final ResourceBundle bundle , final String prefix ) { } public String getAttributeDeprecatedDescription ( final ResourceBundle bundle , final String prefix ) { } public ModelNode addDeprecatedInfo ( final ModelNode model ) { } public ModelNode getNoTextDescription ( boolean forOperation ) { } protected void addAllowedValuesToDescription ( ModelNode result , ParameterValidator validator ) { } protected final ModelNode correctValue ( final ModelNode newValue , final ModelNode oldValue ) { } protected ModelNode convertParameterExpressions ( final ModelNode parameter ) { <START_BUG> if ( ( isAllowExpression ( ) ) && ( AttributeDefinition . COMPLEX_TYPES . contains ( type ) ) ) { <END_BUG> throw new IllegalStateException ( ) ; } return isAllowExpression ( ) ? AttributeDefinition . convertStringExpression ( parameter ) : parameter ; } protected static ModelNode convertStringExpression ( ModelNode node ) { } private ModelNode validateOperation ( final ModelNode operationObject , final boolean immutableValue ) throws OperationFailedException { } public AttributeMarshaller getAttributeMarshaller ( ) { } public boolean isResourceOnly ( ) { } public boolean isDeprecated ( ) { } public DeprecationData getDeprecationData ( ) { } }

Fix:
if ( ( ( isAllowExpression ( ) ) && ( AttributeDefinition . COMPLEX_TYPES . contains ( type ) ) ) && ( ParseUtils . containExpression ( parameter . asString ( ) ) ) ) {