From f2103f466892df823201ed457d0c73a8dd3ddfc0 Mon Sep 17 00:00:00 2001
From: neil_a_wilson <neil_a_wilson@localhost>
Date: Wed, 25 Oct 2006 18:23:33 +0000
Subject: [PATCH] Update the LDIF diff tool to fix a potential infinite loop that could occur if the last entry in the source file had been deleted.

---
 opends/src/server/org/opends/server/tools/LDIFDiff.java |   13 +++++--------
 1 files changed, 5 insertions(+), 8 deletions(-)

diff --git a/opends/src/server/org/opends/server/tools/LDIFDiff.java b/opends/src/server/org/opends/server/tools/LDIFDiff.java
index 50ff1d2..c1e65ab 100644
--- a/opends/src/server/org/opends/server/tools/LDIFDiff.java
+++ b/opends/src/server/org/opends/server/tools/LDIFDiff.java
@@ -510,16 +510,13 @@
             {
               // There are no more target entries so all of the remaining source
               // entries are deletes.
-              while (true)
+              writeDelete(writer, sourceEntry);
+              differenceFound = true;
+              while (sourceIterator.hasNext())
               {
+                sourceDN = sourceIterator.next();
+                sourceEntry = sourceMap.get(sourceDN);
                 writeDelete(writer, sourceEntry);
-                differenceFound = true;
-                while (sourceIterator.hasNext())
-                {
-                  sourceDN = sourceIterator.next();
-                  sourceEntry = sourceMap.get(sourceDN);
-                  writeDelete(writer, sourceEntry);
-                }
               }
             }
           }

--
Gitblit v1.10.0