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);