From 84547c223d8d1076ef843a18fd0ada253041ddae Mon Sep 17 00:00:00 2001 From: dragonmacher <48328597+dragonmacher@users.noreply.github.com> Date: Mon, 8 Jan 2024 17:13:35 -0500 Subject: [PATCH] GP-4213 - Fixed a table exception seen when using Version Tracking --- .../docking/widgets/table/GDynamicColumnTableModel.java | 7 +++++++ 1 file changed, 7 insertions(+) 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);