aboutsummaryrefslogtreecommitdiffstats
path: root/container-search
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2017-08-28 20:54:42 +0200
committerHenning Baldersheim <balder@yahoo-inc.com>2017-08-28 20:54:42 +0200
commit3b8339676cfd2e2b3c02d10b50e9b15812454145 (patch)
treef6e5749dbba4d8b62f10a682810f9aef104f4b29 /container-search
parent2a0a35a68edc3f604aa1747ffbbdefbd821c5470 (diff)
Make assignment of sessionid independent of wether getSessionId(true) has been called prior to clone().
Now it will behave as if getSessionId() has NOT been called, which is what is considered current behavior by 99% of usage patterns.
Diffstat (limited to 'container-search')
-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