From 458de7e54da932519ce0c17e2470c89c5b5a045c Mon Sep 17 00:00:00 2001
From: dugan <dugan@localhost>
Date: Mon, 24 Aug 2009 17:15:51 +0000
Subject: [PATCH] Fix for issue 4188: invalid schema raises exception import exception

---
 opends/src/server/org/opends/server/util/LDIFReader.java |   22 +++++++++++++++++-----
 1 files changed, 17 insertions(+), 5 deletions(-)

diff --git a/opends/src/server/org/opends/server/util/LDIFReader.java b/opends/src/server/org/opends/server/util/LDIFReader.java
index dd92fca..8382b89 100644
--- a/opends/src/server/org/opends/server/util/LDIFReader.java
+++ b/opends/src/server/org/opends/server/util/LDIFReader.java
@@ -306,9 +306,18 @@
       }
       catch (LDIFException e)
       {
-        entriesRejected.incrementAndGet();
-        suffix.removePending(entryDN);
-        throw e;
+          if (debugEnabled())
+          {
+            TRACER.debugInfo("Skipping entry %s because the it reading" +
+                    "its attributes failed.", entryDN);
+          }
+          Message message =
+                           ERR_LDIF_READ_ATTR_SKIP.get(String.valueOf(entryDN),
+                                                       e.getMessage());
+          logToSkipWriter(lines, message);
+          entriesIgnored.incrementAndGet();
+          suffix.removePending(entryDN);
+          continue;
       }
 
       // Create the entry and see if it is one that should be included in the
@@ -344,7 +353,10 @@
         Message message = ERR_LDIF_COULD_NOT_EVALUATE_FILTERS_FOR_IMPORT.
             get(String.valueOf(entry.getDN()), lastEntryLineNumber,
                 String.valueOf(e));
-        throw new LDIFException(message, lastEntryLineNumber, true, e);
+                 logToSkipWriter(lines, message);
+          entriesIgnored.incrementAndGet();
+          suffix.removePending(entryDN);
+          continue;
       }
 
 
@@ -390,7 +402,7 @@
           logToRejectWriter(lines, message);
           entriesRejected.incrementAndGet();
           suffix.removePending(entryDN);
-          throw new LDIFException(message, lastEntryLineNumber, true);
+          continue;
         }
       }
       entryInfo.setEntryID(entryID);

--
Gitblit v1.10.0