From b72ed01b68a8572022f912687db5be60b53c15cf Mon Sep 17 00:00:00 2001 From: James Procter Date: Sun, 22 Oct 2023 12:31:19 +0100 Subject: [PATCH] JAL-4153 avoid use of invokeAndWait, increase wait time and add timeout for the cache update test --- test/jalview/io/cache/JvCacheableInputBoxTest.java | 26 +++++++++++--------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/test/jalview/io/cache/JvCacheableInputBoxTest.java b/test/jalview/io/cache/JvCacheableInputBoxTest.java index 5f9af25..ce34044 100644 --- a/test/jalview/io/cache/JvCacheableInputBoxTest.java +++ b/test/jalview/io/cache/JvCacheableInputBoxTest.java @@ -84,24 +84,28 @@ public class JvCacheableInputBoxTest cacheBox.addItem(testInput); cacheBox.setSelectedItem(testInput); cacheBox.updateCache(); - - try + boolean done[]=new boolean[] { false }; + // this event gets processed after updateCache's update event on the swing + // thread + SwingUtilities.invokeLater(() -> { + done[0]=true; + }); + long t=0; + while (!done[0] && t<200) { - // fix for JAL-4153 - // This delay is to let cacheBox.updateCache() finish updating the cache - SwingUtilities.invokeAndWait(() -> { - try - { - Thread.sleep(1); + try { + Thread.sleep(7); + t++; } catch (InterruptedException e) { e.printStackTrace(); } - }); - } catch (InvocationTargetException | InterruptedException e) + } + if (!done[0]) { - e.printStackTrace(); + Assert.fail("Giving up after 1.4s waiting for cache to be updated."); } + LinkedHashSet foundCache = appCache .getAllCachedItemsFor(TEST_CACHE_KEY); Assert.assertTrue(foundCache.contains(testInput)); -- 1.7.10.2