code: public boolean isReadableProperty(String propertyName) {
  		if (PropertyAccessorUtils.isIndexedProperty(propertyName)) {
  			String rootProperty = getRootPropertyName(propertyName);
  			String parentProperty = getParentPropertyName(propertyName);
  			return isReadableProperty(rootProperty)
  					&& checkKeyTypes(propertyName)
  					&& (!getPropertyType(parentProperty).isArray() || checkSize(propertyName) || isWritableProperty(parentProperty))
  					&& ((isReadableProperty(parentProperty) && getPropertyValue(parentProperty) != null) || isWritableProperty(parentProperty));
  		}
  		else {
  			return readAccessors.containsKey(propertyName);
  		}
  	}
docs: {@inheritDoc}