I dont know why my code is throwing this error. I have a generic array that can hold maxCapacity = 100, and if this number is reached with currentSize, the maxCapacity is doubled. When I perform the following test, it throws a NullPointerException. Why? NOTE: I START AT INDEX 1 (NOT 0) ON PURPOSE!!!!

Test:

```
for(int i=1; i <= 1100; i++)
    list.addLast(i);         

 System.out.println("Should print 1 .. i"); 

for(int x : list)
   System.out.print(x + " ");
System.out.println("\n");

```

Here's my code:

```
    private E[] list;
    private int maxCapacity, currentSize;

    public ArrayLinearList(){
            currentSize = 0; 
            maxCapacity = DEFAULT_MAX_CAPACITY;
            list = (E[]) new Object[maxCapacity];
            //list[0] = null;
            }

    public void addLast(E obj){
            if(isFull()) //check if maxCap has been reached first
                doubleArraySize();
            System.out.println("Method called");
            if(currentSize == maxCapacity - 1)
                doubleArraySize();

            list[++currentSize] = obj;
            }

    ....

    private boolean isFull(){
                if(currentSize == maxCapacity)
                    return true;
                return false;
                }

private void doubleArraySize(){
    maxCapacity *= 2;
    System.out.println("doubling");
    E[] valuesHolder = (E[]) new Object[maxCapacity];

    for(int i = 1; i <= currentSize; i++)
        list[i] = valuesHolder[i];

        list = valuesHolder;
        }

```