From 18bee39a4c8164de4b861d41c5392d2e02fde471 Mon Sep 17 00:00:00 2001 From: morokosi Date: Thu, 30 Apr 2020 22:27:33 +0900 Subject: [PATCH 1/2] fix discarded future value --- .../deciderules/MatchesListRegexDecideRule.java | 2 +- .../MatchesListRegexDecideRuleTest.java | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/modules/src/main/java/org/archive/modules/deciderules/MatchesListRegexDecideRule.java b/modules/src/main/java/org/archive/modules/deciderules/MatchesListRegexDecideRule.java index fc18384f..014c0b5e 100644 --- a/modules/src/main/java/org/archive/modules/deciderules/MatchesListRegexDecideRule.java +++ b/modules/src/main/java/org/archive/modules/deciderules/MatchesListRegexDecideRule.java @@ -118,7 +118,7 @@ public class MatchesListRegexDecideRule extends PredicatedDecideRule { FutureTask matchesFuture = new FutureTask<>(() -> p.matcher(interruptible).matches()); ForkJoinPool.commonPool().submit(matchesFuture); try { - matchesFuture.get(getTimeoutPerRegexSeconds(), TimeUnit.SECONDS); + matches = matchesFuture.get(getTimeoutPerRegexSeconds(), TimeUnit.SECONDS); } catch (TimeoutException e) { matchesFuture.cancel(true); logger.warning("Timed out after " + getTimeoutPerRegexSeconds() + " seconds waiting for '" + p + "' to match."); diff --git a/modules/src/test/java/org/archive/modules/deciderules/MatchesListRegexDecideRuleTest.java b/modules/src/test/java/org/archive/modules/deciderules/MatchesListRegexDecideRuleTest.java index eeea404f..7beae364 100644 --- a/modules/src/test/java/org/archive/modules/deciderules/MatchesListRegexDecideRuleTest.java +++ b/modules/src/test/java/org/archive/modules/deciderules/MatchesListRegexDecideRuleTest.java @@ -32,4 +32,21 @@ public class MatchesListRegexDecideRuleTest extends TestCase { final DecideResult decideResult = rule.decisionFor(curi); assertEquals("Expected NONE not " + decideResult , DecideResult.NONE, decideResult); } + + public void testEvaluateInTime() throws URIException { + final String regex = "http://www\\.netarkivet\\.dk/x+"; + String seed = "http://www.netarkivet.dk/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; + MatchesListRegexDecideRule rule = new MatchesListRegexDecideRule(); + List patternList = new ArrayList<>(); + patternList.add(Pattern.compile(regex)); + rule.setRegexList(patternList); + rule.setEnabled(true); + rule.setListLogicalOr(true); + rule.setDecision(DecideResult.REJECT); + rule.setTimeoutPerRegexSeconds(2); + final CrawlURI curi = new CrawlURI(UURIFactory.getInstance(seed)); + final DecideResult decideResult = rule.decisionFor(curi); + assertEquals("Expected REJECT not " + decideResult , DecideResult.REJECT, decideResult); + } + } \ No newline at end of file From 13ba0b2b67c842904176d7a3c273d5240443a6e9 Mon Sep 17 00:00:00 2001 From: morokosi Date: Thu, 30 Apr 2020 22:29:50 +0900 Subject: [PATCH 2/2] optimize imports --- .../archive/modules/deciderules/MatchesListRegexDecideRule.java | 1 - .../modules/deciderules/MatchesListRegexDecideRuleTest.java | 1 - 2 files changed, 2 deletions(-) diff --git a/modules/src/main/java/org/archive/modules/deciderules/MatchesListRegexDecideRule.java b/modules/src/main/java/org/archive/modules/deciderules/MatchesListRegexDecideRule.java index 014c0b5e..6cd1b3af 100644 --- a/modules/src/main/java/org/archive/modules/deciderules/MatchesListRegexDecideRule.java +++ b/modules/src/main/java/org/archive/modules/deciderules/MatchesListRegexDecideRule.java @@ -20,7 +20,6 @@ package org.archive.modules.deciderules; import java.util.ArrayList; import java.util.List; -import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; import java.util.concurrent.ForkJoinPool; import java.util.concurrent.FutureTask; diff --git a/modules/src/test/java/org/archive/modules/deciderules/MatchesListRegexDecideRuleTest.java b/modules/src/test/java/org/archive/modules/deciderules/MatchesListRegexDecideRuleTest.java index 7beae364..a7a913b6 100644 --- a/modules/src/test/java/org/archive/modules/deciderules/MatchesListRegexDecideRuleTest.java +++ b/modules/src/test/java/org/archive/modules/deciderules/MatchesListRegexDecideRuleTest.java @@ -1,6 +1,5 @@ package org.archive.modules.deciderules; -import com.google.common.annotations.VisibleForTesting; import junit.framework.TestCase; import org.apache.commons.httpclient.URIException; import org.archive.modules.CrawlURI;