From d3520312a9ee993c50354b7c6f6b383d3611135d Mon Sep 17 00:00:00 2001
From: Jean-Noël Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Fri, 15 Jan 2016 11:01:00 +0000
Subject: [PATCH] OPENDJ-2609 NoSuchElementException on ldapsearch --sortorder when using corresponding vlv index

---
 opendj-server-legacy/src/test/java/org/opends/server/backends/pluggable/ControlsTestCase.java |   20 ++++++++++++++++++--
 1 files changed, 18 insertions(+), 2 deletions(-)

diff --git a/opendj-server-legacy/src/test/java/org/opends/server/backends/pluggable/ControlsTestCase.java b/opendj-server-legacy/src/test/java/org/opends/server/backends/pluggable/ControlsTestCase.java
index efe076e..4640bd3 100644
--- a/opendj-server-legacy/src/test/java/org/opends/server/backends/pluggable/ControlsTestCase.java
+++ b/opendj-server-legacy/src/test/java/org/opends/server/backends/pluggable/ControlsTestCase.java
@@ -21,7 +21,7 @@
  * CDDL HEADER END
  *
  *
- *      Copyright 2015 ForgeRock AS
+ *      Copyright 2015-2016 ForgeRock AS
  */
 package org.opends.server.backends.pluggable;
 
@@ -78,7 +78,6 @@
 @SuppressWarnings("javadoc")
 public class ControlsTestCase extends DirectoryServerTestCase
 {
-
   private static final String BACKEND_BASE_DN = "dc=pluggable-vlv,dc=com";
   private static final String BACKEND_NAME = "pluggable-vlv";
   private static final String VLV_FILTER = "(objectClass=person)";
@@ -406,6 +405,23 @@
     assertThat(vlvResponse.getVLVResultCode()).isEqualTo(LDAPResultCode.OFFSET_RANGE_ERROR);
   }
 
+  @Test
+  public void serverSideSortControlShouldUseVlvIndex() throws Exception
+  {
+    final SearchRequest request =
+        newSearchRequest(BACKEND_BASE_DN, SearchScope.WHOLE_SUBTREE, VLV_FILTER)
+        .addControl(new ServerSideSortRequestControl(mangleSortOrder(SORT_ORDER_1)));
+    final InternalSearchOperation internalSearch = getRootConnection().processSearch(request);
+
+    assertThat(internalSearch.getResultCode()).isEqualTo(ResultCode.SUCCESS);
+    assertThat(getDNs(internalSearch.getSearchEntries())).isEqualTo(getDNs(USERS_BY_SORT_ORDER_1));
+
+    final List<Control> responseControls = internalSearch.getResponseControls();
+    assertThat(responseControls).hasSize(1);
+    final ServerSideSortResponseControl sortResponse = getServerSideSortResponseControl(responseControls);
+    assertThat(sortResponse.getResultCode()).isEqualTo(LDAPResultCode.SUCCESS);
+  }
+
   @DataProvider
   private Object[][] unindexedVlvByAssertionDataProvider()
   {

--
Gitblit v1.10.0