code: public void removeListFieldValue(String fieldName, int index) {
  		Object val = getFieldValue(fieldName, true); // internal
  		
  		DOField fld = getDomainObjectType().getFieldByName(fieldName);
  		String ctn = fld.getComponentTypeName();
  		Class<?> clazz;
  		try {
  			clazz = getDomainObjectType().getDomainModel().getClassForName(ctn);
  		} catch (ClassNotFoundException e) {
  			throw new RuntimeException(e);
  		}
  		
  		if (val instanceof List<?>)
  			((List<?>)val).remove(index);
  		else if (val != null && val.getClass().isArray()) {
  			int len = Array.getLength(val);
  			Object array = Array.newInstance(clazz, len - 1);
  			for (int i = 0; i < index; i++) {
  				Array.set(array, i, Array.get(val, i));
  			}
  			for (int i = index; i < len - 1; i++) {
  				Array.set(array, i, Array.get(val, i - 1));
  			}
  		} else {
  			if (!getDomainObjectType().getFieldByName(fieldName).isListOrArray())
  				throw new RuntimeException("field: [" + fieldName + "] is neither list nor array");
  			if (val == null)
  				throw new RuntimeException("list or array field: [" + fieldName + "] is null");
  		}
  	}
docs: Remove a value from a list at the given index.
  <br/>Shifts any subsequent elements to the left (subtracts one from their indices).
  @param fieldName
  @param index