Fix replacing timeout.
Change-Id: Ic74750b545a418d74ac448cee4f45ae59a703be9
diff --git a/src/main/java/de/ids_mannheim/korap/rewrite/TimeoutRewrite.java b/src/main/java/de/ids_mannheim/korap/rewrite/TimeoutRewrite.java
index a467ce5..1cdfd2f 100644
--- a/src/main/java/de/ids_mannheim/korap/rewrite/TimeoutRewrite.java
+++ b/src/main/java/de/ids_mannheim/korap/rewrite/TimeoutRewrite.java
@@ -16,12 +16,14 @@
int timeout = (access.equals(CorpusAccess.FREE)) ?
config.getGuestTimeout() : config.getLoginTimeout();
- if (node.has("timeout")) {
- RewriteIdentifier id = new RewriteIdentifier("timeout",
- node.get("timeout"), "Timeout has been replaced. "
- + "The original value is described in the original "
- + "property.");
- node.replace("timeout", timeout, id);
+ if (node.has("timeout")) {
+ if (node.at("/timeout").asInt() > timeout) {
+ RewriteIdentifier id = new RewriteIdentifier("timeout",
+ node.get("timeout"), "Timeout has been replaced. "
+ + "The original value is described in the original "
+ + "property.");
+ node.replace("timeout", timeout, id);
+ }
}
else {
RewriteIdentifier id = new RewriteIdentifier("timeout", null,
diff --git a/src/test/java/de/ids_mannheim/korap/rewrite/TimeoutRewriteTest.java b/src/test/java/de/ids_mannheim/korap/rewrite/TimeoutRewriteTest.java
index 43146ed..84a3d5a 100644
--- a/src/test/java/de/ids_mannheim/korap/rewrite/TimeoutRewriteTest.java
+++ b/src/test/java/de/ids_mannheim/korap/rewrite/TimeoutRewriteTest.java
@@ -1,6 +1,7 @@
package de.ids_mannheim.korap.rewrite;
import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
import java.util.HashMap;
import java.util.Map;
@@ -24,6 +25,26 @@
public KustvaktConfiguration config;
@Test
+ public void testNoRewrite () throws KustvaktException {
+ RewriteHandler handler = new RewriteHandler(config);
+ handler.add(TimeoutRewrite.class);
+
+ Map<String, Object> map = new HashMap<String,Object>();
+ map.put("count", 25);
+ map.put("timeout", 1000);
+ QuerySerializer s = new QuerySerializer();
+ s.setQuery(TestVariables.SIMPLE_ADD_QUERY, "poliqarp");
+ s.setMeta(map);
+ String result = s.toJSON();
+ JsonNode node = JsonUtils.readTree(handler.processQuery(result,
+ User.UserFactory.getUser("test_user")));
+
+ node = node.at("/meta");
+ assertEquals(1000, node.at("/timeout").asInt());
+ assertTrue(node.at("/rewrites").isMissingNode());
+ }
+
+ @Test
public void testReplaceTimeout () throws KustvaktException {
RewriteHandler handler = new RewriteHandler(config);
handler.add(TimeoutRewrite.class);