}
private void handleComplexProperty(PathAddress address, String attrName, ModelNode attrValue, ModelNode valueTypeDesc,
Map<String, ModelNode> expressionAttrs, Map<String, ModelNode> otherAttrs,
Map<String, ModelNode> expectedAttrs) {
Property prop = attrValue.asProperty();
ModelNode propVal = prop.getValue();
ModelNode updatedPropVal = new ModelNode();
ModelNode propValToExpect = new ModelNode();
handleComplexItem(address, attrName, propVal, valueTypeDesc, updatedPropVal, propValToExpect);
if (!updatedPropVal.equals(propVal)) {
complexProperty++;
ModelNode updatedProp = new ModelNode().set(prop.getName(), updatedPropVal);
logHandling("Added expression to COMPLEX PROPERTY attribute " + attrName + " at " + address.toModelNode().asString());
expressionAttrs.put(attrName, updatedProp);
expectedAttrs.put(attrName, new ModelNode().set(prop.getName(), propValToExpect));
} else {
noComplexProperty++;
logNoExpressions(address, attrName);
otherAttrs.put(attrName, attrValue);
}