diff --git a/Ghidra/Framework/Docking/src/main/java/docking/widgets/table/GDynamicColumnTableModel.java b/Ghidra/Framework/Docking/src/main/java/docking/widgets/table/GDynamicColumnTableModel.java index ad9238cc66..22b90f8c2f 100644 --- a/Ghidra/Framework/Docking/src/main/java/docking/widgets/table/GDynamicColumnTableModel.java +++ b/Ghidra/Framework/Docking/src/main/java/docking/widgets/table/GDynamicColumnTableModel.java @@ -207,6 +207,13 @@ public abstract class GDynamicColumnTableModel */ @SuppressWarnings("unchecked") // the column provides the values itself; safe cast protected Comparator createSortComparatorForColumn(int columnIndex) { + if (columnIndex < 0 || columnIndex >= tableColumns.size()) { + // We have seen this sporadically. Assume for now there is some sort of timing issue. + // Although, it is possible for any client to call this on a table without columns. + Msg.debug(this, "Invalid sort comparator request on %s at index %d (column count %d)" + .formatted(getName(), columnIndex, tableColumns.size())); + return null; + } DynamicTableColumn column = getColumn(columnIndex); Comparator comparator = (Comparator) column.getComparator(this, columnIndex);