Dúvida sobre erro em uma jTable com checkBox [Resolvido]

Boa tarde a todos,

Estou seguindo o exemplo linkado aqui no forum pelo amigo ViniGodoy -> http://www.javasimples.com.br/swing-awt/death-to-defaulttablemodel-abstracttablemodel-rulez/
Montei todo o exemplo adequando com os campos de minha tabela de clientes, no entanto ao chamar a tela é apresentado o seguinte erro:

[quote]Exception occurred during event dispatching:
java.lang.NullPointerException
at javax.swing.JTable.prepareRenderer(JTable.java:5720)
at javax.swing.plaf.basic.BasicTableUI.paintCell(BasicTableUI.java:2072)
at javax.swing.plaf.basic.BasicTableUI.paintCells(BasicTableUI.java:1974) . . . [/quote]
Minha classe Abstract esta montada da seguinte forma:

[code]public class MensalistaTableModel extends AbstractTableModel {
//constantes que vão representar as colunas
//(só para facilitar o entendimento do código)
private final int COL_NOME = 0;
private final int COL_END = 1;
private final int COL_TEL = 2;
private final int COL_CPF = 3;
private final int COL_SITU = 4;
//lista dos mensalistas que serão exibidos
private List mensalistas;

public MensalistaTableModel() {
    mensalistas = new ArrayList();
}

public MensalistaTableModel(List<Mensalista> lista) {
    this();
    mensalistas.addAll(lista);
}

public int getRowCount() {
    //cada produto na lista será uma linha
    return mensalistas.size();
}

public int getColumnCount() {
    //vamos exibir só Nome e Quantidade, então são 2 colunas
    return 5;
}

@Override
public String getColumnName(int column) {
    //qual o nome da coluna
    if (column == COL_NOME)
        return "Nome";
    else if (column == COL_END)
        return "Endereço";
    else if (column == COL_TEL)
        return "Telefone";
    else if (column == COL_CPF)
        return "Cpf";
    else if (column == COL_SITU)
        return "Ativo";
  return "";
}

@Override
public Class getColumnClass(int columnIndex) {
    //retorna a classe que representa a coluna
    if (columnIndex == COL_NOME)
        return String.class;
    else if (columnIndex == COL_END)
        return String.class;
    else if (columnIndex == COL_TEL)
        return String.class;
    else if (columnIndex == COL_CPF)
        return String.class;
    else if (columnIndex == COL_SITU)
        return boolean.class;
  return String.class;
}


public Object getValueAt(int rowIndex, int columnIndex) {
    //pega o produto da linha
    Mensalista m = mensalistas.get(rowIndex);

    //verifica qual valor deve ser retornado
    if (columnIndex == COL_NOME)
        return m.getNome();
    else if (columnIndex == COL_END)
        return m.getEndereco();
    else if (columnIndex == COL_TEL)
        return m.getTelefone();
    else if (columnIndex == COL_CPF)
        return m.getCpf();
    else if (columnIndex == COL_SITU)
        return m.getSituacao();

  return "";
}

@Override
public boolean isCellEditable(int rowIndex, int columnIndex) {
    //Dados da tabela não editaveis
    return false;
}

[/code]

Estou chamando a tela, carregando o modelo logo no construtor por meio do metodo carregarTabela.
Já verifiquei e o conteúdo do ArrayList não esta nulo.

[code]public ConsultaMensalistaUI() {
initComponents();
try {
carregarTabela();
} catch (ClassNotFoundException ex) {
Logger.getLogger(ConsultaMensalistaUI.class.getName()).log(Level.SEVERE, null, ex);
} catch (SQLException ex) {
Logger.getLogger(ConsultaMensalistaUI.class.getName()).log(Level.SEVERE, null, ex);
}
}

public void carregarTabela() throws ClassNotFoundException, SQLException{
    ultimoCod=4;
    PessoaControl pc = new PessoaControl();
    List<Mensalista> listagem = new ArrayList<Mensalista>(pc.buscaMensalista());
    modelo = new MensalistaTableModel(listagem);
    jTableMensalista.setModel(modelo);
}

[/code]

Grato a quem puder me dar uma ajudinha!

Problema resolvido:

Na linha 59 da minha classe AbstractModel:

return boolean.class; 
//Mudei para
return Boolean class;

Coisa muito simples, mas deu bastante trabalho!

Só pra complementar, também deixo os seguintes métodos para alterações que eventualmente forem feitas nas células, inclusive alterações no checkBox da coluna booleana:

[code] @Override
public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
//pega o produto da linha
Mensalista m = mensalistas.get(rowIndex);

    //verifica qual valor vai ser alterado
    if (columnIndex == COL_NOME)
        m.setNome(aValue.toString());
    else if (columnIndex == COL_END)
        m.setEndereco(aValue.toString());
    else if (columnIndex == COL_TEL)
        m.setTelefone(aValue.toString());
    else if (columnIndex == COL_CPF)
        m.setCpf(aValue.toString());
    else if (columnIndex == COL_SITU)
        check.set(rowIndex, (Boolean) aValue);

    //avisa que os dados mudaram
    fireTableDataChanged();
}

public boolean isChecked(Mensalista mens) {
    return check.get(this.mens.indexOf(mens)) == Boolean.TRUE;
}

[/code]
Abraço a todos!!!