From 8cc96a32e2a0bff1402d0a9509d093cdbe206cd8 Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Wed, 03 Jul 2013 15:40:04 +0000
Subject: [PATCH] ServerState.java: Replaced the pattern "iterate on keys then get the values" by just "iterate on values". In getBytes(), replaced 2 loops by just one.
---
opends/src/server/org/opends/server/replication/common/ServerState.java | 61 +++++++++++++-----------------
1 files changed, 26 insertions(+), 35 deletions(-)
diff --git a/opends/src/server/org/opends/server/replication/common/ServerState.java b/opends/src/server/org/opends/server/replication/common/ServerState.java
index d814e1e..a3ef21f 100644
--- a/opends/src/server/org/opends/server/replication/common/ServerState.java
+++ b/opends/src/server/org/opends/server/replication/common/ServerState.java
@@ -30,6 +30,7 @@
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.*;
+import java.util.Map.Entry;
import java.util.zip.DataFormatException;
import org.opends.server.protocols.asn1.ASN1Writer;
@@ -241,9 +242,8 @@
synchronized (serverIdToChangeNumber)
{
- for (int key : serverIdToChangeNumber.keySet())
+ for (ChangeNumber change : serverIdToChangeNumber.values())
{
- ChangeNumber change = serverIdToChangeNumber.get(key);
Date date = new Date(change.getTime());
set.add(change + " " + date + " " + change.getTime());
}
@@ -264,11 +264,9 @@
synchronized (serverIdToChangeNumber)
{
- for (int serverId : serverIdToChangeNumber.keySet())
+ for (ChangeNumber changeNumber : serverIdToChangeNumber.values())
{
- ByteString value =
- ByteString.valueOf(serverIdToChangeNumber.get(serverId).toString());
- values.add(value);
+ values.add(ByteString.valueOf(changeNumber.toString()));
}
}
return values;
@@ -319,11 +317,9 @@
synchronized (serverIdToChangeNumber)
{
- for (int key : serverIdToChangeNumber.keySet())
+ for (ChangeNumber change : serverIdToChangeNumber.values())
{
- ChangeNumber change = serverIdToChangeNumber.get(key);
- buffer.append(change.toString());
- buffer.append(" ");
+ buffer.append(change).append(" ");
}
if (!serverIdToChangeNumber.isEmpty())
buffer.deleteCharAt(buffer.length() - 1);
@@ -353,9 +349,8 @@
synchronized (serverIdToChangeNumber)
{
- for (int serverId : serverIdToChangeNumber.keySet())
+ for (ChangeNumber tmpMax : serverIdToChangeNumber.values())
{
- ChangeNumber tmpMax = serverIdToChangeNumber.get(serverId);
if ((maxCN==null) || (tmpMax.newer(maxCN)))
maxCN = tmpMax;
}
@@ -386,27 +381,27 @@
{
synchronized (serverIdToChangeNumber)
{
+ final int size = serverIdToChangeNumber.size();
+ List<String> idList = new ArrayList<String>(size);
+ List<String> cnList = new ArrayList<String>(size);
+ // calculate the total length needed to allocate byte array
int length = 0;
- List<String> idList =
- new ArrayList<String>(serverIdToChangeNumber.size());
- for (int serverId : serverIdToChangeNumber.keySet())
+ for (Entry<Integer, ChangeNumber> entry : serverIdToChangeNumber
+ .entrySet())
{
- String temp = String.valueOf(serverId);
- idList.add(temp);
- length += temp.length() + 1;
- }
- List<String> cnList =
- new ArrayList<String>(serverIdToChangeNumber.size());
- for (ChangeNumber cn : serverIdToChangeNumber.values())
- {
- String temp = cn.toString();
- cnList.add(temp);
- length += temp.length() + 1;
+ String serverIdStr = String.valueOf(entry.getKey());
+ idList.add(serverIdStr);
+ length += serverIdStr.length() + 1;
+
+ String changeNumberStr = entry.getValue().toString();
+ cnList.add(changeNumberStr);
+ length += changeNumberStr.length() + 1;
}
byte[] result = new byte[length];
+ // write the server state into the byte array
int pos = 0;
- for (int i = 0; i < serverIdToChangeNumber.size(); i++)
+ for (int i = 0; i < size; i++)
{
String str = idList.get(i);
pos = addByteArray(str.getBytes("UTF-8"), result, pos);
@@ -481,11 +476,9 @@
ServerState newState = new ServerState();
synchronized (serverIdToChangeNumber)
{
- for (Integer key : serverIdToChangeNumber.keySet())
+ for (ChangeNumber change : serverIdToChangeNumber.values())
{
- ChangeNumber change = serverIdToChangeNumber.get(key);
- Integer serverId = change.getServerId();
- newState.serverIdToChangeNumber.put(serverId, change);
+ newState.serverIdToChangeNumber.put(change.getServerId(), change);
}
}
return newState;
@@ -563,13 +556,11 @@
ServerState newState = new ServerState();
synchronized (serverIdToChangeNumber)
{
- for (Integer key : serverIdToChangeNumber.keySet())
+ for (ChangeNumber change : serverIdToChangeNumber.values())
{
- ChangeNumber change = serverIdToChangeNumber.get(key);
- Integer serverId = change.getServerId();
if (change.older(cn))
{
- newState.serverIdToChangeNumber.put(serverId, change);
+ newState.serverIdToChangeNumber.put(change.getServerId(), change);
}
}
}
--
Gitblit v1.10.0