diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/listingpanel/ListingPanel.java b/Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/listingpanel/ListingPanel.java index 33340f4841..a412ceebc3 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/listingpanel/ListingPanel.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/listingpanel/ListingPanel.java @@ -513,7 +513,9 @@ public class ListingPanel extends JPanel implements FieldMouseListener, FieldLoc listingHoverHandler.initializeListingHoverHandler(handler); listingHoverHandler.dispose(); } + listingHoverHandler = handler; + fieldPanel.setHoverProvider(listingHoverHandler); } public void dispose() { diff --git a/Ghidra/Features/FunctionGraph/src/test/java/ghidra/app/plugin/core/functiongraph/FunctionGraphPlugin1Test.java b/Ghidra/Features/FunctionGraph/src/test/java/ghidra/app/plugin/core/functiongraph/FunctionGraphPlugin1Test.java index 3988bf949a..fd0af22763 100644 --- a/Ghidra/Features/FunctionGraph/src/test/java/ghidra/app/plugin/core/functiongraph/FunctionGraphPlugin1Test.java +++ b/Ghidra/Features/FunctionGraph/src/test/java/ghidra/app/plugin/core/functiongraph/FunctionGraphPlugin1Test.java @@ -807,20 +807,23 @@ public class FunctionGraphPlugin1Test extends AbstractFunctionGraphTest { assertInHistory(Arrays.asList(addresses)); } - private void assertInHistory(List
addresses) { + private void assertInHistory(List
expectedAddresses) { - List locations = getNavigationHistory(); - assertTrue("Vertex locations not added to history", addresses.size() <= locations.size()); + List actualLocations = getNavigationHistory(); + assertTrue( + "Vertex address should be in the history list: " + expectedAddresses + ".\nHistory: " + + actualLocations + "\nNavigated vertices: " + expectedAddresses, + expectedAddresses.size() <= actualLocations.size()); List
actualAddresses = - locations.stream() + actualLocations.stream() .map(memento -> memento.getProgramLocation().getAddress()) .collect(Collectors.toList()); - for (Address a : addresses) { + for (Address a : expectedAddresses) { assertTrue("Vertex address should be in the history list: " + a + ".\nHistory: " + - actualAddresses + "\nNavigated vertices: " + addresses, + actualAddresses + "\nNavigated vertices: " + expectedAddresses, actualAddresses.contains(a)); } } diff --git a/Ghidra/Framework/Docking/src/test/java/ghidra/docking/spy/SpyEventRecorder.java b/Ghidra/Framework/Docking/src/test/java/ghidra/docking/spy/SpyEventRecorder.java index e08d8548dc..88d6bf2d0b 100644 --- a/Ghidra/Framework/Docking/src/test/java/ghidra/docking/spy/SpyEventRecorder.java +++ b/Ghidra/Framework/Docking/src/test/java/ghidra/docking/spy/SpyEventRecorder.java @@ -57,6 +57,11 @@ public class SpyEventRecorder { } } + // synchronized because we spy on multiple threads (like Test and Swing) + public synchronized void record(String message, Object... args) { + record(String.format(message, args)); + } + private synchronized String eventsToString() { int size = events.size();