Pegar o estado(ASCENDING, DESCENDING or UNSORTED) clicando num header

Pessoal, estou tentando verificar o estado de um header atraves de um click. Eu consigo pegar o indice dele, e nisso eu tento pegar o elemento na sortedList, porem ele fica levantando ArrayIndexOutOfBoundsException ao clicar em alguns headers.

Como eu poderia obter esse estado?

Como faço para adicionar elementos na lista de SortKey

Tenho esse codigo para adicionar na list, porem nao sei se posso adicionar todos os estados na list

List <RowSorter.SortKey> sortKeys
= new ArrayList<RowSorter.SortKey>();
sortKeys.add(new RowSorter.SortKey(1, SortOrder.ASCENDING));
sortKeys.add(new RowSorter.SortKey(0, SortOrder.ASCENDING));
sorter.setSortKeys(sortKeys);

e este embaixo é o evento:

header.addMouseListener(new MouseAdapter() {

               public void mouseClicked(MouseEvent e) {
                        // right mouse button = 3
              
                   if (e.getButton() == MouseEvent.BUTTON1) {
                             // do something
                           //int select = tableTasks.getSelectedRow();
                              int selectedHeader = tasksTableHeader.columnAtPoint(e.getPoint());
                              SortKey key = (SortKey) sortedList.get(selectedHeader);
                              System.out.println("Order Selected = " + key.getSortOrder());
                              System.out.println("Header Selected = " + selectedHeader);
                   }
               }

});

Adradeço a atenção