TableModel não consegue acessar seus próprios atributos

Estou querendo criar uma tabela com uma linha a mais do que número de elementos do maior array. Só que sempre dá NullPointerException no getRowCount() quando tenta pegar os arrays. Achei estranho, porque eu uso o size() dos arrays nos get e setValueAt sem problemas. Alguém sabe onde está o meu erro?

[code]import java.util.ArrayList;
import javax.swing.table.DefaultTableModel;

public class CaixaTableModel extends DefaultTableModel{

private ArrayList<Double> arr1 = new ArrayList<Double>();
private ArrayList<Double> arr2 = new ArrayList<Double>();
private ArrayList<Integer> arr3 = new ArrayList<Integer>();

public CaixaTableModel() {
}

public int getColumnCount() {
    return 3;
}

public int getRowCount() {
    int n = 5;
    if (arr1.size()>n) n=arr1.size();
    if (arr2.size()>n) n=arr2.size();
    if (arr3.size()>n) n=arr3.size();
    return n+1;
}

public Object getValueAt(int row, int col) {
    // código
}

public void setValueAt(Object value, int row, int col) {
    // código
}

}[/code]