From ed7a20c6930400fbdfff0383c3e4a12a3952f124 Mon Sep 17 00:00:00 2001 From: Dave Parker Date: Tue, 10 Nov 2020 00:01:25 +0000 Subject: [PATCH] Attempt to fix GUI threading bug in GUI simulator "plot path" feature. --- .../simulator/SimPathPlotThread.java | 26 ++++++++++++------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/prism/src/userinterface/simulator/SimPathPlotThread.java b/prism/src/userinterface/simulator/SimPathPlotThread.java index 5ac26088..7cee61c9 100644 --- a/prism/src/userinterface/simulator/SimPathPlotThread.java +++ b/prism/src/userinterface/simulator/SimPathPlotThread.java @@ -26,6 +26,8 @@ package userinterface.simulator; +import javax.swing.SwingUtilities; + import prism.PrismException; import simulator.GenerateSimulationPath; import simulator.SimulatorEngine; @@ -53,16 +55,22 @@ public class SimPathPlotThread extends GUIComputationThread public void run() { - try { - GenerateSimulationPath genPath = new GenerateSimulationPath(engine, prism.getMainLog()); - genPath.generateAndPlotSimulationPath(initialState, simPathDetails, maxPathLength, graphModel); - if (genPath.getNumWarnings() > 0) { - for (String msg : genPath.getWarnings()) { - plug.warning(msg); + SwingUtilities.invokeLater(new Runnable() + { + public void run() + { + try { + GenerateSimulationPath genPath = new GenerateSimulationPath(engine, prism.getMainLog()); + genPath.generateAndPlotSimulationPath(initialState, simPathDetails, maxPathLength, graphModel); + if (genPath.getNumWarnings() > 0) { + for (String msg : genPath.getWarnings()) { + plug.warning(msg); + } + } + } catch (PrismException e) { + error(e.getMessage()); } } - } catch (PrismException e) { - error(e.getMessage()); - } + }); } }