Source:
<code>private 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, final boolean validateNull, final String[] alternatives, final String[] requires, AttributeMarshaller attributeMarshaller, boolean resourceOnly, DeprecationData deprecationData, final List<AccessConstraintDefinition> accessConstraints, Boolean nilSignificant, AttributeParser parser, final String attributeGroup, CapabilityReferenceRecorder referenceRecorder, ModelNode[] allowedValues, final ModelNode undefinedMetricValue, final EnumSet<AttributeAccess.Flag> flags) { this.name = name; this.xmlName = xmlName == null ? name : xmlName; this.type = type; this.allowNull = allowNull; this.allowExpression = allowExpression; this.parser = parser != null ? parser : AttributeParser.SIMPLE; this.defaultValue = new ModelNode(); if (defaultValue != null) { this.defaultValue.set(defaultValue); } this.defaultValue.protect(); this.measurementUnit = measurementUnit; this.alternatives = alternatives; this.requires = requires; this.valueCorrector = valueCorrector; this.validator = validator; this.validateNull = validateNull; this.flags = flags; if (attributeMarshaller != null) { this.attributeMarshaller = attributeMarshaller; } else { this.attributeMarshaller = new DefaultAttributeMarshaller(); } this.resourceOnly = resourceOnly; this.accessConstraints = accessConstraints; this.deprecationData = deprecationData; this.nilSignificant = nilSignificant; this.attributeGroup = attributeGroup; this.allowedValues = allowedValues; this.undefinedMetricValue = new ModelNode(); if (undefinedMetricValue != null) { this.undefinedMetricValue.set(undefinedMetricValue); <START> } <END> this.undefinedMetricValue.protect(); this.referenceRecorder = referenceRecorder; }</code><technical_language>getUndefinedMetricValue() is return null if constructor param is null undefined, in case skip constructing a ModelNode store null. applies for defaultValue treatment (which I wrote.) working a managment perf support case, I perf mind today. ;)</technical_language>

Target:
private 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, final boolean validateNull, final String[] alternatives, final String[] requires, AttributeMarshaller attributeMarshaller, boolean resourceOnly, DeprecationData deprecationData, final List<AccessConstraintDefinition> accessConstraints, Boolean nilSignificant, AttributeParser parser, final String attributeGroup, CapabilityReferenceRecorder referenceRecorder, ModelNode[] allowedValues, final ModelNode undefinedMetricValue, final EnumSet<AttributeAccess.Flag> flags) { this.name = name; this.xmlName = xmlName == null ? name : xmlName; this.type = type; this.allowNull = allowNull; this.allowExpression = allowExpression; this.parser = parser != null ? parser : AttributeParser.SIMPLE; if (defaultValue != null && defaultValue.isDefined()) { this.defaultValue = defaultValue; this.defaultValue.protect(); } else { this.defaultValue = null; } this.measurementUnit = measurementUnit; this.alternatives = alternatives; this.requires = requires; this.valueCorrector = valueCorrector; this.validator = validator; this.validateNull = validateNull; this.flags = flags; if (attributeMarshaller != null) { this.attributeMarshaller = attributeMarshaller; } else { this.attributeMarshaller = new DefaultAttributeMarshaller(); } this.resourceOnly = resourceOnly; this.accessConstraints = accessConstraints; this.deprecationData = deprecationData; this.nilSignificant = nilSignificant; this.attributeGroup = attributeGroup; this.allowedValues = allowedValues; if (undefinedMetricValue != null && undefinedMetricValue.isDefined()) { this.undefinedMetricValue = undefinedMetricValue; undefinedMetricValue.protect();; } else { this.undefinedMetricValue = null; } this.undefinedMetricValue.protect(); this.referenceRecorder = referenceRecorder; }