code: @Override
  	public Object getValue(ELContext context, Object base, Object property) {
  		if (context == null) {
  			throw new NullPointerException("context is null");
  		}
  		Object result = null;
  		if (isResolvable(base)) {
  			int index = toIndex(null, property);
  			result = index < 0 || index >= Array.getLength(base) ? null : Array.get(base, index);
  			context.setPropertyResolved(true);
  		}
  		return result;
  	}
docs: If the base object is a Java language array, returns the value at the given index. The index
  is specified by the property argument, and coerced into an integer. If the coercion could not
  be performed, an IllegalArgumentException is thrown. If the index is out of bounds, null is
  returned. If the base is a Java language array, the propertyResolved property of the
  ELContext object must be set to true by this resolver, before returning. If this property is
  not true after this method is called, the caller should ignore the return value.
  
  @param context
  The context of this evaluation.
  @param base
  The array to analyze. Only bases that are a Java language array are handled by
  this resolver.
  @param property
  The index of the element in the array to return the acceptable type for. Will be
  coerced into an integer, but otherwise ignored by this resolver.
  @return If the propertyResolved property of ELContext was set to true, then the value at the
  given index or null if the index was out of bounds. Otherwise, undefined.
  @throws PropertyNotFoundException
  if the given index is out of bounds for this array.
  @throws NullPointerException
  if context is null
  @throws ELException
  if an exception was thrown while performing the property or variable resolution.
  The thrown exception must be included as the cause property of this exception, if
  available.