From 8e41745b17b37a2a508ba6a016eddf9c6f219125 Mon Sep 17 00:00:00 2001
From: pgamba <pgamba@localhost>
Date: Tue, 13 Nov 2007 15:45:42 +0000
Subject: [PATCH] Fix 2588 - ReplicationBackend.getEntryCount() very inefficient
---
opends/src/server/org/opends/server/replication/server/ReplicationBackend.java | 25 ++++++++-----------------
1 files changed, 8 insertions(+), 17 deletions(-)
diff --git a/opends/src/server/org/opends/server/replication/server/ReplicationBackend.java b/opends/src/server/org/opends/server/replication/server/ReplicationBackend.java
index 80e3822..6033b78 100644
--- a/opends/src/server/org/opends/server/replication/server/ReplicationBackend.java
+++ b/opends/src/server/org/opends/server/replication/server/ReplicationBackend.java
@@ -331,23 +331,14 @@
//This method only returns the number of actual change entries, the
//domain and any baseDN entries are not counted.
long retNum=0;
- try {
- InternalClientConnection conn =
- InternalClientConnection.getRootConnection();
- SearchFilter filter=
- SearchFilter.createFilterFromString("(changetype=*)");
- InternalSearchOperation searchOperation =
- new InternalSearchOperation(conn,
- InternalClientConnection.nextOperationID(),
- InternalClientConnection.nextMessageID(), null,
- baseDNs[0],
- SearchScope.WHOLE_SUBTREE,
- DereferencePolicy.NEVER_DEREF_ALIASES, 0, 0, false,
- filter, null, null);
- search(searchOperation);
- retNum=searchOperation.getSearchEntries().size();
- } catch (DirectoryException ex) {
- retNum=0;
+ Iterator<ReplicationCache> rcachei = server.getCacheIterator();
+ if (rcachei != null)
+ {
+ while (rcachei.hasNext())
+ {
+ ReplicationCache rc = rcachei.next();
+ retNum += rc.getChangesCount();
+ }
}
return retNum;
--
Gitblit v1.10.0