From c8626eec1df7f97e7766340e3b0ceefd9b92add0 Mon Sep 17 00:00:00 2001 From: dragonmacher <48328597+dragonmacher@users.noreply.github.com> Date: Thu, 28 Jan 2021 09:40:54 -0500 Subject: [PATCH] Fixed potential timing-based stack trace --- .../Docking/src/main/java/docking/ComponentProvider.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Ghidra/Framework/Docking/src/main/java/docking/ComponentProvider.java b/Ghidra/Framework/Docking/src/main/java/docking/ComponentProvider.java index b45a616933..3d798d782f 100644 --- a/Ghidra/Framework/Docking/src/main/java/docking/ComponentProvider.java +++ b/Ghidra/Framework/Docking/src/main/java/docking/ComponentProvider.java @@ -204,13 +204,18 @@ public abstract class ComponentProvider implements HelpDescriptor, ActionContext // Default implementation public void requestFocus() { + JComponent component = getComponent(); + if (component == null) { + return; // this shouldn't happen; this implies we have been disposed + } + KeyboardFocusManager kfm = KeyboardFocusManager.getCurrentKeyboardFocusManager(); Component focusOwner = kfm.getFocusOwner(); - if (focusOwner != null && SwingUtilities.isDescendingFrom(focusOwner, getComponent())) { + if (focusOwner != null && SwingUtilities.isDescendingFrom(focusOwner, component)) { return; } - getComponent().requestFocus(); + component.requestFocus(); } /**