From 710ec51ca06f9ba8190b3d48ab869811adbf6604 Mon Sep 17 00:00:00 2001
From: Jean-Noël Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Wed, 03 Aug 2016 10:11:49 +0000
Subject: [PATCH] TopologyCache.updateReplicas() simplified code by optimizing the search filter
---
opendj-server-legacy/src/main/java/org/opends/admin/ads/TopologyCache.java | 19 ++++++++-----------
1 files changed, 8 insertions(+), 11 deletions(-)
diff --git a/opendj-server-legacy/src/main/java/org/opends/admin/ads/TopologyCache.java b/opendj-server-legacy/src/main/java/org/opends/admin/ads/TopologyCache.java
index 307413e..c69aecf 100644
--- a/opendj-server-legacy/src/main/java/org/opends/admin/ads/TopologyCache.java
+++ b/opendj-server-legacy/src/main/java/org/opends/admin/ads/TopologyCache.java
@@ -36,7 +36,6 @@
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.forgerock.opendj.ldap.DN;
import org.forgerock.opendj.ldap.EntryNotFoundException;
-import org.forgerock.opendj.ldap.requests.Requests;
import org.forgerock.opendj.ldap.requests.SearchRequest;
import org.forgerock.opendj.ldap.responses.SearchResultEntry;
import org.forgerock.opendj.ldif.ConnectionEntryReader;
@@ -51,8 +50,10 @@
import static com.forgerock.opendj.cli.Utils.*;
import static org.forgerock.opendj.ldap.SearchScope.*;
+import static org.forgerock.opendj.ldap.requests.Requests.*;
import static org.opends.admin.ads.util.ConnectionUtils.*;
import static org.opends.messages.QuickSetupMessages.*;
+
/**
* This class allows to read the configuration of the different servers that are
* registered in a given ADS server. It provides a read only view of the
@@ -459,7 +460,8 @@
throws NamingException, IOException
{
ServerLoader loader = getServerLoader(replicationServer.getAdsProperties());
- SearchRequest request = Requests.newSearchRequest("cn=monitor", WHOLE_SUBTREE, "(missing-changes=*)",
+ // only replicas have "server-id", but not replication servers
+ SearchRequest request = newSearchRequest("cn=monitor", WHOLE_SUBTREE, "(&(missing-changes=*)(server-id=*))",
"domain-name",
"server-id",
"missing-changes",
@@ -475,13 +477,7 @@
int replicaId = -1;
try
{
- Integer sid = asInteger(sr, "server-id");
- if (sid == null)
- {
- // This is not a replica, but a replication server. Skip it
- continue;
- }
- replicaId = Integer.valueOf(sid);
+ replicaId = sr.getAttribute("server-id").parse().asInteger();
}
catch (Throwable t)
{
@@ -490,14 +486,15 @@
for (ReplicaDescriptor replica : candidateReplicas)
{
- if (dn.equals(replica.getSuffix().getDN())
- && replica.isReplicated()
+ if (replica.isReplicated()
+ && dn.equals(replica.getSuffix().getDN())
&& replica.getReplicationId() == replicaId)
{
// This statistic is optional.
setAgeOfOldestMissingChange(replica, sr);
setMissingChanges(replica, sr);
updatedReplicas.add(replica);
+ break;
}
}
}
--
Gitblit v1.10.0