the two ListSelectionListeners get triggered and they get row and column value -1, which is an exception when I use them to index
I would guess the event gets generated because you remove all the data so the selection needs to be set to -1 indicating that no cells are selected anymore.
Your code should check for -1 and don't do the processing.
The other option is to remove the listener before you invoke the updateData() method and then add the listener after the model has been updated.