From b2efaf7ba0228d844773bb6c350806015069ea59 Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Tue, 18 Aug 2015 14:51:20 +0000
Subject: [PATCH] AttrHistoricalSingle.java: In processLocalOrNonConflictModification(), made the code more explicit + prevented double assignment

---
 opendj-server-legacy/src/main/java/org/opends/server/replication/plugin/AttrHistoricalSingle.java   |   30 ++++++++++++++-
 opendj-server-legacy/src/main/java/org/opends/server/replication/plugin/AttrHistoricalMultiple.java |   33 +++++++++++++---
 2 files changed, 54 insertions(+), 9 deletions(-)

diff --git a/opendj-server-legacy/src/main/java/org/opends/server/replication/plugin/AttrHistoricalMultiple.java b/opendj-server-legacy/src/main/java/org/opends/server/replication/plugin/AttrHistoricalMultiple.java
index eb4e442..639360c 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/replication/plugin/AttrHistoricalMultiple.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/replication/plugin/AttrHistoricalMultiple.java
@@ -402,17 +402,14 @@
            */
           builder.add(valInfo.getAttributeValue());
         }
-        else
+        else if (csn.isNewerThanOrEqualTo(valInfo.getValueDeleteTime()))
         {
           /*
            * this value is going to be deleted, remove it from historical
            * information unless it is a Deleted attribute value that is
            * more recent than this DELETE
            */
-          if (csn.isNewerThanOrEqualTo(valInfo.getValueDeleteTime()))
-          {
-            it.remove();
-          }
+          it.remove();
         }
       }
 
@@ -529,8 +526,7 @@
     AttributeBuilder builder = new AttributeBuilder(m.getAttribute());
     for (ByteString addVal : m.getAttribute())
     {
-      AttrValueHistorical valInfo =
-        new AttrValueHistorical(addVal, csn, null);
+      AttrValueHistorical valInfo = new AttrValueHistorical(addVal, csn, null);
       AttrValueHistorical oldValInfo = valuesHist.get(valInfo);
       if (oldValInfo == null)
       {
@@ -630,4 +626,27 @@
       break;
     }
   }
+
+  @Override
+  public String toString()
+  {
+    final StringBuilder sb = new StringBuilder();
+    sb.append(getClass().getSimpleName()).append("(");
+    boolean deleteAppended = false;
+    if (deleteTime != null)
+    {
+      deleteAppended = true;
+      sb.append("deleteTime=").append(deleteTime);
+    }
+    if (lastUpdateTime != null)
+    {
+      if (deleteAppended)
+      {
+        sb.append(", ");
+      }
+      sb.append("lastUpdateTime=").append(lastUpdateTime);
+    }
+    sb.append(", valuesHist=").append(valuesHist);
+    return sb.toString();
+  }
 }
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/replication/plugin/AttrHistoricalSingle.java b/opendj-server-legacy/src/main/java/org/opends/server/replication/plugin/AttrHistoricalSingle.java
index d4ee62f..9b6291f 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/replication/plugin/AttrHistoricalSingle.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/replication/plugin/AttrHistoricalSingle.java
@@ -110,10 +110,11 @@
       }
       else
       {
-        this.deleteTime = addTime = csn;
+        this.addTime = csn;
+        this.deleteTime = csn;
+        this.value = newValue;
         lastMod = REPL;
       }
-      this.value = newValue;
       break;
 
     case INCREMENT:
@@ -302,4 +303,29 @@
       break;
     }
   }
+
+  @Override
+  public String toString()
+  {
+    final StringBuilder sb = new StringBuilder();
+    if (deleteTime != null)
+    {
+      sb.append("deleteTime=").append(deleteTime);
+    }
+    if (addTime != null)
+    {
+      if (sb.length() > 0)
+      {
+        sb.append(", ");
+      }
+      sb.append("addTime=").append(addTime);
+    }
+    if (sb.length() > 0)
+    {
+      sb.append(", ");
+    }
+    sb.append("value=").append(value)
+      .append(", lastMod=").append(lastMod);
+    return getClass().getSimpleName() + "(" + sb + ")";
+  }
 }

--
Gitblit v1.10.0