From 7dab6ec2750095bdc6439daaf09458bb37522e36 Mon Sep 17 00:00:00 2001 From: Andrew Jackson Date: Sun, 11 Aug 2019 22:03:55 +0100 Subject: [PATCH] Avoid using Thread.interrupt as this freaks BDB-JE. --- .../modules/fetcher/CookieStoreTest.java | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/modules/src/test/java/org/archive/modules/fetcher/CookieStoreTest.java b/modules/src/test/java/org/archive/modules/fetcher/CookieStoreTest.java index a621a57d..7d6da619 100644 --- a/modules/src/test/java/org/archive/modules/fetcher/CookieStoreTest.java +++ b/modules/src/test/java/org/archive/modules/fetcher/CookieStoreTest.java @@ -30,6 +30,7 @@ import java.util.List; import java.util.Map; import java.util.Random; import java.util.UUID; +import java.util.concurrent.atomic.AtomicBoolean; import java.util.logging.Logger; import org.apache.commons.io.FileUtils; @@ -301,12 +302,14 @@ public class CookieStoreTest extends TmpDirTestCase { bdbCookieStore().clear(); basicCookieStore().clear(); final Random rand = new Random(); + + final AtomicBoolean keepRunning = new AtomicBoolean(true); Runnable runnable = new Runnable() { @Override public void run() { try { - while (!Thread.interrupted()) { + while (keepRunning.get()) { BasicClientCookie cookie = new BasicClientCookie(UUID.randomUUID().toString(), UUID.randomUUID().toString()); cookie.setDomain("d" + rand.nextInt() + ".example.com"); bdbCookieStore().addCookie(cookie); @@ -326,10 +329,9 @@ public class CookieStoreTest extends TmpDirTestCase { } Thread.sleep(5000); - - for (int i = 0; i < threads.length; i++) { - threads[i].interrupt(); - } + + // Shutdown the threads: + keepRunning.set(false); for (int i = 0; i < threads.length; i++) { threads[i].join(); } @@ -343,12 +345,14 @@ public class CookieStoreTest extends TmpDirTestCase { bdbCookieStore().clear(); basicCookieStore().clear(); final Random rand = new Random(); + + final AtomicBoolean keepRunning = new AtomicBoolean(true); Runnable runnable = new Runnable() { @Override public void run() { try { - while (!Thread.interrupted()) { + while (keepRunning.get()) { BasicClientCookie cookie = new BasicClientCookie(UUID.randomUUID().toString(), UUID.randomUUID().toString()); cookie.setDomain("d" + rand.nextInt(20) + ".example.com"); bdbCookieStore().addCookie(cookie); @@ -369,9 +373,8 @@ public class CookieStoreTest extends TmpDirTestCase { Thread.sleep(1000); - for (int i = 0; i < threads.length; i++) { - threads[i].interrupt(); - } + // Shutdown the threads: + keepRunning.set(false); for (int i = 0; i < threads.length; i++) { threads[i].join(); }