From df64115411a46cc420e5d54bbc8113f8bae2f5f8 Mon Sep 17 00:00:00 2001
From: Jean-Noël Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Wed, 02 Sep 2015 14:43:36 +0000
Subject: [PATCH] Fix random failure in ChangelogBackendTestCase
---
opendj-server-legacy/src/test/java/org/opends/server/backends/ChangelogBackendTestCase.java | 18 +++++++++++++-----
1 files changed, 13 insertions(+), 5 deletions(-)
diff --git a/opendj-server-legacy/src/test/java/org/opends/server/backends/ChangelogBackendTestCase.java b/opendj-server-legacy/src/test/java/org/opends/server/backends/ChangelogBackendTestCase.java
index bb8c256..d678a04 100644
--- a/opendj-server-legacy/src/test/java/org/opends/server/backends/ChangelogBackendTestCase.java
+++ b/opendj-server-legacy/src/test/java/org/opends/server/backends/ChangelogBackendTestCase.java
@@ -337,6 +337,7 @@
InternalSearchOperation searchOp = searchChangelogUsingCookie("(targetDN=*)", "", SUCCESS, 3, test);
String firstCookie = readCookieFromNthEntry(searchOp.getSearchEntries(), 0);
+ assertThat(firstCookie).isEqualTo(buildCookie(csns[0]));
// remove the domain by sending a reset message
publishUpdateMessages(test, server1, false, new ResetGenerationIdMsg(23657));
@@ -385,19 +386,27 @@
CSN csn3 = new CSN(time, seqNum++, server2.getServerId());
CSN csn4 = new CSN(time, seqNum++, server1.getServerId());
- publishUpdateMessagesInOTest(test, false, generateDeleteMsg(server1, csn1, test, 1));
-
+ publishUpdateMessagesInOTest(test, false,
+ generateDeleteMsg(server1, csn1, test, 1));
publishUpdateMessagesInOTest2(test,
generateDeleteMsg(server2, csn2, test, 2),
generateDeleteMsg(server2, csn3, test, 3));
-
- publishUpdateMessagesInOTest(test, false, generateDeleteMsg(server1, csn4, test, 4));
+ publishUpdateMessagesInOTest(test, false,
+ generateDeleteMsg(server1, csn4, test, 4));
// search on all suffixes using empty cookie
String cookie = "";
InternalSearchOperation searchOp =
searchChangelogUsingCookie("(targetDN=*" + test + "*)", cookie, SUCCESS, 4, test);
cookie = readCookieFromNthEntry(searchOp.getSearchEntries(), 2);
+ if (!new MultiDomainServerState(cookie).equals("o=test:" + csn1 + " " + csn3 + ";"))
+ {
+ // the changes were inserted in the DB while we were reading the results.
+ // so they are not in the order expected by this test.
+ // now that all the changes are in, retry, because they will now be returned in the expected order
+ searchOp = searchChangelogUsingCookie("(targetDN=*" + test + "*)", cookie, SUCCESS, 4, test);
+ cookie = readCookieFromNthEntry(searchOp.getSearchEntries(), 2);
+ }
// search using previous cookie and expect to get ONLY the 4th change
LDIFWriter ldifWriter = getLDIFWriter();
@@ -943,7 +952,6 @@
private String assertEntriesContainsCSNsAndReadLastCookie(String test, List<SearchResultEntry> entries,
LDIFWriter ldifWriter, CSN... csns) throws Exception
{
- // TODO JNR Should the order be guaranteed?
assertThat(getCSNsFromEntries(entries)).containsOnly(csns);
debugAndWriteEntries(ldifWriter, entries, test);
return readCookieFromNthEntry(entries, csns.length - 1);
--
Gitblit v1.10.0