From 80f29a511a0681bc55293f0ea82e368097f2fa9a Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Fri, 27 Sep 2013 12:30:28 +0000
Subject: [PATCH] Fixed the failing nightly test GenerationIdTest.testSingleRS().
---
opends/tests/unit-tests-testng/src/server/org/opends/server/replication/ReplicationTestCase.java | 182 ++++++++++++++------------------------------
1 files changed, 59 insertions(+), 123 deletions(-)
diff --git a/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/ReplicationTestCase.java b/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/ReplicationTestCase.java
index de7b4a9..83b9c03 100644
--- a/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/ReplicationTestCase.java
+++ b/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/ReplicationTestCase.java
@@ -327,33 +327,6 @@
return broker;
}
- /**
- * Open a replicationServer session with flow control to the local
- * ReplicationServer.
- */
- protected ReplicationBroker openReplicationSession(
- final DN baseDN, int serverId, int window_size,
- int port, int timeout, int maxSendQueue, int maxRcvQueue,
- boolean emptyOldChanges)
- throws Exception, SocketException
- {
- ServerState state = new ServerState();
-
- if (emptyOldChanges)
- new PersistentServerState(baseDN, serverId, new ServerState());
-
- ReplicationBroker broker = new ReplicationBroker(null,
- state, baseDN, serverId, window_size,
- getGenerationId(baseDN), 0, getReplSessionSecurity(), (byte)1, 500);
- List<String> servers = new ArrayList<String>(1);
- servers.add("localhost:" + port);
- broker.start(servers);
- checkConnection(30, broker, port);
- if (timeout != 0)
- broker.setSoTimeout(timeout);
- return broker;
- }
-
protected void deleteEntry(DN dn)
{
try
@@ -364,10 +337,9 @@
catch(Exception e)
{}
- DeleteOperationBasis op;
- op = new DeleteOperationBasis(connection, InternalClientConnection
- .nextOperationID(), InternalClientConnection.nextMessageID(), null,
- dn);
+ DeleteOperationBasis op = new DeleteOperationBasis(connection,
+ InternalClientConnection.nextOperationID(), InternalClientConnection.nextMessageID(),
+ null, dn);
op.run();
if ((op.getResultCode() != ResultCode.SUCCESS) &&
(op.getResultCode() != ResultCode.NO_SUCH_OBJECT))
@@ -897,102 +869,76 @@
}
protected void waitTaskState(Entry taskEntry, TaskState expectedTaskState,
- Message expectedMessage)
+ Message expectedMessage) throws Exception
{
TaskState taskState = null;
int cpt=40;
- try
+
+ SearchFilter filter = SearchFilter.createFilterFromString("(objectclass=*)");
+ Entry resultEntry = null;
+ do
{
- SearchFilter filter =
- SearchFilter.createFilterFromString("(objectclass=*)");
- Entry resultEntry = null;
- do
- {
- InternalSearchOperation searchOperation =
- connection.processSearch(taskEntry.getDN(),
- SearchScope.BASE_OBJECT,
- filter);
- try
- {
- resultEntry = searchOperation.getSearchEntries().getFirst();
- } catch (Exception e)
- {
- fail("Task entry was not returned from the search.");
- continue;
- }
+ InternalSearchOperation searchOperation =
+ connection.processSearch(taskEntry.getDN(), SearchScope.BASE_OBJECT, filter);
+ resultEntry = searchOperation.getSearchEntries().getFirst();
- try
- {
- // Check that the task state is as expected.
- AttributeType taskStateType =
- DirectoryServer.getAttributeType(ATTR_TASK_STATE.toLowerCase());
- String stateString =
- resultEntry.getAttributeValue(taskStateType,
- DirectoryStringSyntax.DECODER);
- taskState = TaskState.fromString(stateString);
- }
- catch(Exception e)
- {
- fail("Exception"+ e.getMessage()+e.getStackTrace());
- }
- Thread.sleep(500);
- cpt--;
- }
- while ((taskState != expectedTaskState) &&
- (taskState != TaskState.STOPPED_BY_ERROR) &&
- (taskState != TaskState.COMPLETED_SUCCESSFULLY) &&
- (cpt > 0));
+ // Check that the task state is as expected.
+ AttributeType taskStateType =
+ DirectoryServer.getAttributeType(ATTR_TASK_STATE.toLowerCase());
+ String stateString =
+ resultEntry.getAttributeValue(taskStateType, DirectoryStringSyntax.DECODER);
+ taskState = TaskState.fromString(stateString);
- // Check that the task contains some log messages.
- AttributeType logMessagesType = DirectoryServer.getAttributeType(
- ATTR_TASK_LOG_MESSAGES.toLowerCase());
- List<String> logMessages = new ArrayList<String>();
- resultEntry.getAttributeValues(logMessagesType,
- DirectoryStringSyntax.DECODER,
- logMessages);
+ Thread.sleep(500);
+ cpt--;
+ }
+ while ((taskState != expectedTaskState)
+ && (taskState != TaskState.STOPPED_BY_ERROR)
+ && (taskState != TaskState.COMPLETED_SUCCESSFULLY) && (cpt > 0));
- if ((taskState != TaskState.COMPLETED_SUCCESSFULLY)
- && (taskState != TaskState.RUNNING))
- {
- if (logMessages.size() == 0)
- {
- fail("No log messages were written to the task entry on a failed task");
- }
- }
- if (logMessages.size() != 0)
- {
- TRACER.debugInfo(logMessages.get(0));
- if (expectedMessage != null)
- {
- TRACER.debugInfo(expectedMessage.toString());
- assertTrue(logMessages.get(0).indexOf(
- expectedMessage.toString())>0);
- }
- }
+ // Check that the task contains some log messages.
+ AttributeType logMessagesType =
+ DirectoryServer.getAttributeType(ATTR_TASK_LOG_MESSAGES.toLowerCase());
+ List<String> logMessages = new ArrayList<String>();
+ resultEntry.getAttributeValues(logMessagesType,
+ DirectoryStringSyntax.DECODER, logMessages);
- if ((expectedTaskState == TaskState.RUNNING)
- && (taskState == TaskState.COMPLETED_SUCCESSFULLY))
+ if ((taskState != TaskState.COMPLETED_SUCCESSFULLY)
+ && (taskState != TaskState.RUNNING))
+ {
+ if (logMessages.size() == 0)
{
- // We usually wait the running state after adding the task
- // and if the task is fast enough then it may be already done
- // and we can go on.
- }
- else
- {
- assertEquals(taskState, expectedTaskState, "Task State:" + taskState +
- " Expected task state:" + expectedTaskState);
+ fail("No log messages were written to the task entry on a failed task");
}
}
- catch(Exception e)
+ if (logMessages.size() != 0)
{
- fail("waitTaskState Exception:"+ e.getMessage() + " " + stackTraceToSingleLineString(e));
+ TRACER.debugInfo(logMessages.get(0));
+ if (expectedMessage != null)
+ {
+ TRACER.debugInfo(expectedMessage.toString());
+ assertTrue(logMessages.get(0).indexOf(expectedMessage.toString()) > 0);
+ }
+ }
+
+ if ((expectedTaskState == TaskState.RUNNING)
+ && (taskState == TaskState.COMPLETED_SUCCESSFULLY))
+ {
+ // We usually wait the running state after adding the task
+ // and if the task is fast enough then it may be already done
+ // and we can go on.
+ }
+ else
+ {
+ assertEquals(taskState, expectedTaskState, "Task State:" + taskState
+ + " Expected task state:" + expectedTaskState);
}
}
/**
* Add to the current DB the entries necessary to the test
*/
- protected void addTestEntriesToDB(String[] ldifEntries)
+ protected void addTestEntriesToDB(String... ldifEntries)
{
try
{
@@ -1040,10 +986,7 @@
*/
protected String getEntryUUID(DN dn) throws Exception
{
- Entry newEntry;
int count = 10;
- if (count<1)
- count=1;
String found = null;
while ((count> 0) && (found == null))
{
@@ -1057,14 +1000,11 @@
try
{
- newEntry = DirectoryServer.getEntry(dn);
-
+ Entry newEntry = DirectoryServer.getEntry(dn);
if (newEntry != null)
{
List<Attribute> tmpAttrList = newEntry.getAttribute("entryuuid");
- Attribute tmpAttr = tmpAttrList.get(0);
-
- for (AttributeValue val : tmpAttr)
+ for (AttributeValue val : tmpAttrList.get(0))
{
found = val.getValue().toString();
break;
@@ -1104,15 +1044,13 @@
* @return The expected message if it comes in time or fails (assertion).
*/
protected static ReplicationMsg waitForSpecificMsg(Session session, String msgType) {
-
- ReplicationMsg replMsg = null;
-
int timeOut = 5000; // 5 seconds max to wait for the desired message
long startTime = System.currentTimeMillis();
long curTime = startTime;
int nMsg = 0;
while ((curTime - startTime) <= timeOut)
{
+ ReplicationMsg replMsg = null;
try
{
replMsg = session.receive();
@@ -1147,15 +1085,13 @@
* @return The expected message if it comes in time or fails (assertion).
*/
protected static ReplicationMsg waitForSpecificMsg(ReplicationBroker broker, String msgType) {
-
- ReplicationMsg replMsg = null;
-
int timeOut = 5000; // 5 seconds max to wait for the desired message
long startTime = System.currentTimeMillis();
long curTime = startTime;
int nMsg = 0;
while ((curTime - startTime) <= timeOut)
{
+ ReplicationMsg replMsg = null;
try
{
replMsg = broker.receive();
--
Gitblit v1.10.0