summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--container-search/src/main/java/com/yahoo/search/Query.java1
-rw-r--r--container-search/src/test/java/com/yahoo/search/test/QueryTestCase.java11
2 files changed, 8 insertions, 4 deletions
diff --git a/container-search/src/main/java/com/yahoo/search/Query.java b/container-search/src/main/java/com/yahoo/search/Query.java
index 23da30120da..53b39046f1d 100644
--- a/container-search/src/main/java/com/yahoo/search/Query.java
+++ b/container-search/src/main/java/com/yahoo/search/Query.java
@@ -936,6 +936,7 @@ public class Query extends com.yahoo.processing.Request implements Cloneable {
clone.setOffset(getOffset());
clone.setNoCache(getNoCache());
clone.setGroupingSessionCache(getGroupingSessionCache());
+ clone.requestId = null; // Each clone should have their own requestId.
}
/** Returns the presentation to be used for this query, never null */
diff --git a/container-search/src/test/java/com/yahoo/search/test/QueryTestCase.java b/container-search/src/test/java/com/yahoo/search/test/QueryTestCase.java
index 0e9451685cb..e59c03b33c3 100644
--- a/container-search/src/test/java/com/yahoo/search/test/QueryTestCase.java
+++ b/container-search/src/test/java/com/yahoo/search/test/QueryTestCase.java
@@ -653,11 +653,14 @@ public class QueryTestCase {
Query q2 = new Query();
assertNotEquals(q.getSessionId(false), q2.getSessionId(true));
assertNotEquals(q.getSessionId(false).toString(), q2.getSessionId(true).toString());
-
- // This is not required, but just to document current implementation.
+ }
+ @Test
+ public void testThatCloneGetANewSessionId() {
+ Query q = new Query();
+ q.getSessionId(true);
Query clonedQ = q.clone();
- assertNotNull(clonedQ.getSessionId(false));
- assertEquals(q.getSessionId(false), q.getSessionId(false));
+ assertNull(clonedQ.getSessionId(false));
+ assertNotEquals(q.getSessionId(false), clonedQ.getSessionId(true));
}
@Test