From d0ec8721f5e2963e994679b185c876de878c5c3d Mon Sep 17 00:00:00 2001
From: coulbeck <coulbeck@localhost>
Date: Tue, 18 Jul 2006 20:08:45 +0000
Subject: [PATCH] Mark Craig found a couple of bugs in the LDIF reader to do with rejected entries.

---
 opendj-sdk/opends/src/server/org/opends/server/util/LDIFReader.java          |   15 +++++++++++----
 opendj-sdk/opends/src/server/org/opends/server/messages/UtilityMessages.java |    4 ++--
 2 files changed, 13 insertions(+), 6 deletions(-)

diff --git a/opendj-sdk/opends/src/server/org/opends/server/messages/UtilityMessages.java b/opendj-sdk/opends/src/server/org/opends/server/messages/UtilityMessages.java
index a4688fc..87c6923 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/messages/UtilityMessages.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/messages/UtilityMessages.java
@@ -1459,8 +1459,8 @@
                     "duplicate attribute %s with value %s.  The second " +
                     "occurrence of that attribute value has been skipped.");
     registerMessage(MSGID_LDIF_MULTIPLE_VALUES_FOR_SINGLE_VALUED_ATTR,
-                    "Entry %s includes multiple values for single-valued " +
-                    "attribute %s.");
+                    "Entry %s starting at line %d includes multiple values " +
+                    "for single-valued attribute %s.");
     registerMessage(MSGID_LDIF_INVALID_ATTR_SYNTAX,
                     "Unable to parse LDIF entry %s starting at line %d " +
                     "because it has an invalid value \"%s\" for attribute " +
diff --git a/opendj-sdk/opends/src/server/org/opends/server/util/LDIFReader.java b/opendj-sdk/opends/src/server/org/opends/server/util/LDIFReader.java
index 61f268a..b5d93d0 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/util/LDIFReader.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/util/LDIFReader.java
@@ -241,12 +241,19 @@
            new HashMap<AttributeType,List<Attribute>>();
       HashMap<AttributeType,List<Attribute>> operationalAttributes =
            new HashMap<AttributeType,List<Attribute>>();
-      for (StringBuilder line : lines)
+      try
       {
-        readAttribute(lines, line, entryDN, objectClasses, userAttributes,
-                      operationalAttributes);
+        for (StringBuilder line : lines)
+        {
+          readAttribute(lines, line, entryDN, objectClasses, userAttributes,
+                        operationalAttributes);
+        }
       }
-
+      catch (LDIFException e)
+      {
+        entriesRejected++;
+        throw e;
+      }
 
       // Create the entry and see if it is one that should be included in the
       // import.

--
Gitblit v1.10.0