if (retainDefaultsEnabled() && propertyValue == null) { setArrayForKey(array == null ? NSArray.EmptyArray : array, propertyName);
if (retainDefaultsEnabled() && propertyValue == null && array != null) { setArrayForKey(array, propertyName);
    public static NSArray arrayForKeyWithDefault(final String s, final NSArray defaultValue) {        final String propertyName = getApplicationSpecificPropertyName(s);        Object value = _cache.get(propertyName);        if (value == UndefinedMarker) {            return defaultValue;        }        if (value instanceof NSArray) {            return (NSArray)value;        }                final String propertyValue = System.getProperty(propertyName);        final NSArray array = ERXValueUtilities.arrayValueWithDefault(propertyValue, defaultValue);        if (retainDefaultsEnabled() && propertyValue == null) {            setArrayForKey(array == null ? NSArray.EmptyArray : array, propertyName);        }        _cache.put(propertyName, propertyValue == null ? (Object)UndefinedMarker : array);        return array;    }