diff --git a/Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/gui/provider/matchtable/VTMatchTableProvider.java b/Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/gui/provider/matchtable/VTMatchTableProvider.java index 2a5bcc219b..32e5a4bc98 100644 --- a/Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/gui/provider/matchtable/VTMatchTableProvider.java +++ b/Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/gui/provider/matchtable/VTMatchTableProvider.java @@ -229,6 +229,10 @@ public class VTMatchTableProvider extends ComponentProviderAdapter private VTMatchTableModel createTableModel() { matchesTableModel = new VTMatchTableModel(controller); matchesTableModel.addTableModelListener(e -> { + if (matchesTable == null) { + return; // we've been disposed + } + int filteredCount = matchesTableModel.getRowCount(); int unfilteredCount = matchesTableModel.getUnfilteredRowCount(); diff --git a/Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/gui/provider/onetomany/VTMatchOneToManyTableProvider.java b/Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/gui/provider/onetomany/VTMatchOneToManyTableProvider.java index b68fa810dc..bb4c93d931 100644 --- a/Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/gui/provider/onetomany/VTMatchOneToManyTableProvider.java +++ b/Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/gui/provider/onetomany/VTMatchOneToManyTableProvider.java @@ -168,6 +168,10 @@ public abstract class VTMatchOneToManyTableProvider extends ComponentProviderAda protected GhidraTable initializeMatchesTable() { oneToManyTableModel = getMatchesTableModel(); oneToManyTableModel.addTableModelListener(e -> { + if (matchesTable == null) { + return; // we've been disposed + } + if (pendingMatchSelection != null) { setSelectedMatch(pendingMatchSelection); } @@ -235,7 +239,7 @@ public abstract class VTMatchOneToManyTableProvider extends ComponentProviderAda int row = oneToManyTableModel.getRowIndex(match); if (row < 0) { pendingMatchSelection = match; - // this happen while reloading. If so, save the match and listen for + // this happen while reloading. If so, save the match and listen for // the table data changed and restore the selection at that point return; } @@ -469,7 +473,7 @@ public abstract class VTMatchOneToManyTableProvider extends ComponentProviderAda //================================================================================================== // FilterDialogModel Methods -//================================================================================================== +//================================================================================================== @Override public void addFilter(Filter filter) {