code: @Override
  	public boolean addAll(int start, Collection<? extends Object> args) {
  		boolean result = false;
  		for (Object obj : args) {
  			result = true;
  			try {
  				add(start++, obj);
  			} catch (IllegalArgumentException e) {
  				throw new IllegalArgumentException("index " + start + " is invalid type", e);
  			}
  		}
  		return result;
  	}
docs: Inserts the given objects at the given index in the array.
  WARNING: While we attempt to guess the value type with {@link #isState(Object)}, it is error-prone, thus it is not advisable to use this method.
  
  @oaram start The index to insert at.
  @param args
  The values to insert.