@Override public void fireTableChanged(TableModelEvent e) { if (gazetteerList == null) { return; } if (filter.length() < 1) { gazetteerListFiltered.clear(); gazetteerListFiltered.addAll(gazetteerList); super.fireTableChanged(e); } else { filterRows(); // same as super.fireTableDataChanged() to avoid recursion super.fireTableChanged(new TableModelEvent(this)); } }