From 116cc7b2a9e8b6fc5bcb6115cb9cf633cec12601 Mon Sep 17 00:00:00 2001
From: neil_a_wilson <neil_a_wilson@localhost>
Date: Tue, 16 Jan 2007 20:13:21 +0000
Subject: [PATCH] Revert the changes made in revision 980 because they appear to be responsible for a number of test case failures and a potential deadlock.
---
opendj-sdk/opends/src/server/org/opends/server/synchronization/changelog/DbHandler.java | 62 ++++++++++++------------------
1 files changed, 25 insertions(+), 37 deletions(-)
diff --git a/opendj-sdk/opends/src/server/org/opends/server/synchronization/changelog/DbHandler.java b/opendj-sdk/opends/src/server/org/opends/server/synchronization/changelog/DbHandler.java
index 64bb929..ac53f2b 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/synchronization/changelog/DbHandler.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/synchronization/changelog/DbHandler.java
@@ -81,7 +81,6 @@
private boolean shutdown = false;
private boolean done = false;
private DirectoryThread thread = null;
- private Object flushLock = new Object();
/**
* Creates a New dbHandler associated to a given LDAP server.
@@ -205,12 +204,6 @@
public ChangelogIterator generateIterator(ChangeNumber changeNumber)
throws DatabaseException, Exception
{
- /*
- * make sure to flush some changes in the database so that
- * we don't create the iterator on an empty database when the
- * dbHandler has just been started.
- */
- flush();
return new ChangelogIterator(serverId, db, changeNumber);
}
@@ -327,22 +320,17 @@
while ((size < 5000 ) && (!finished))
{
ChangeNumber changeNumber = cursor.nextChangeNumber();
- if (changeNumber != null)
+ if ((changeNumber != null) && (!changeNumber.equals(lastChange))
+ && (changeNumber.older(trimDate)))
{
- if ((!changeNumber.equals(lastChange))
- && (changeNumber.older(trimDate)))
- {
- size++;
- cursor.delete();
- }
- else
- {
- firstChange = changeNumber;
- finished = true;
- }
+ size++;
+ cursor.delete();
}
else
+ {
+ firstChange = changeNumber;
finished = true;
+ }
}
cursor.close();
@@ -362,21 +350,19 @@
do
{
- synchronized(flushLock)
- {
- // get N messages to save in the DB
- List<UpdateMessage> changes = getChanges(500);
+ // get N messages to save in the DB
+ List<UpdateMessage> changes = getChanges(500);
- // if no more changes to save exit immediately.
- if ((changes == null) || ((size = changes.size()) == 0))
- return;
+ // if no more changes to save exit immediately.
+ if ((changes == null) || ((size = changes.size()) == 0))
+ return;
- // save the change to the stable storage.
- db.addEntries(changes);
+ // save the change to the stable storage.
+ db.addEntries(changes);
- // remove the changes from the list of changes to be saved.
- clear(changes.size());
- }
+ // remove the changes from the list of changes to be saved.
+ clear(changes.size());
+
} while (size >=500);
}
@@ -401,17 +387,19 @@
attributes.add(new Attribute("changelog-database",
String.valueOf(serverId)));
attributes.add(new Attribute("base-dn", baseDn.toString()));
- if (firstChange != null)
+ ChangeNumber first = getFirstChange();
+ ChangeNumber last = getLastChange();
+ if (first != null)
{
- Date firstTime = new Date(firstChange.getTime());
+ Date firstTime = new Date(first.getTime());
attributes.add(new Attribute("first-change",
- firstChange.toString() + " " + firstTime.toString()));
+ first.toString() + " " + firstTime.toString()));
}
- if (lastChange != null)
+ if (last != null)
{
- Date lastTime = new Date(lastChange.getTime());
+ Date lastTime = new Date(last.getTime());
attributes.add(new Attribute("last-change",
- lastChange.toString() + " " + lastTime.toString()));
+ last.toString() + " " + lastTime.toString()));
}
return attributes;
--
Gitblit v1.10.0