# From http://colossus.svn.sourceforge.net/viewvc/colossus?view=revision&revision=5300 --- trunk/Colossus/core/src/main/java/net/sf/colossus/gui/ClientGUI.java 2012/12/24 01:44:32 5299 +++ trunk/Colossus/core/src/main/java/net/sf/colossus/gui/ClientGUI.java 2013/02/13 20:17:46 5300 @@ -1753,8 +1753,37 @@ } } + /** Dispose the PickCarryDialog, make sure that that is done inside the + * EDT (caused GUI to hang in 1.6.0_39 whereas in 1.6.0_38 it worked )-; + */ public void disposePickCarryDialog() { + if (SwingUtilities.isEventDispatchThread()) + { + actualDisposePickCarryDialog(); + } + else + { + try + { + SwingUtilities.invokeAndWait(new Runnable() + { + public void run() + { + actualDisposePickCarryDialog(); + } + }); + } + catch (Exception e) + { + LOGGER.warning("When trying to run disposePickCarryDialog " + + "in invokeAndWait, caught exception: " + e); + } + } + } + + public void actualDisposePickCarryDialog() + { if (pickCarryDialog != null) { if (battleBoard != null) --- trunk/Colossus/core/src/main/java/net/sf/colossus/gui/PickCarry.java 2012/12/24 01:44:32 5299 +++ trunk/Colossus/core/src/main/java/net/sf/colossus/gui/PickCarry.java 2013/02/13 20:17:46 5300 @@ -133,7 +133,7 @@ gui.getCallbackHandler().applyCarries(targetHex); } saveWindow.saveLocation(getLocation()); - dispose(); + gui.disposePickCarryDialog(); } }