diff --git a/gui/griffon-app/models/com/muwire/gui/MainFrameModel.groovy b/gui/griffon-app/models/com/muwire/gui/MainFrameModel.groovy index d4ce66e0..b431cecd 100644 --- a/gui/griffon-app/models/com/muwire/gui/MainFrameModel.groovy +++ b/gui/griffon-app/models/com/muwire/gui/MainFrameModel.groovy @@ -109,7 +109,12 @@ class MainFrameModel { void updateTablePreservingSelection(String tableName) { def downloadTable = builder.getVariable(tableName) int selectedRow = downloadTable.getSelectedRow() - downloadTable.model.fireTableDataChanged() + while(true) { + try { + downloadTable.model.fireTableDataChanged() + break + } catch (IllegalArgumentException iae) {} // caused by underlying model changing while table is sorted + } downloadTable.selectionModel.setSelectionInterval(selectedRow,selectedRow) }