From f0e30fc5433a285d3860a0194893f3f39f6642de Mon Sep 17 00:00:00 2001
From: Ludovic Poitou <ludovic.poitou@forgerock.com>
Date: Tue, 17 Apr 2012 11:30:33 +0000
Subject: [PATCH] Fix OPENDJ-472: offline import LDIF reject entries, doesn't report the correct count of them, and store them in both rejected and skipped files. Clean up and moved counters increments in call to log rejected or skipped entries.

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

diff --git a/opends/src/server/org/opends/server/util/LDIFReader.java b/opends/src/server/org/opends/server/util/LDIFReader.java
index eb6fc0b..84df71d 100644
--- a/opends/src/server/org/opends/server/util/LDIFReader.java
+++ b/opends/src/server/org/opends/server/util/LDIFReader.java
@@ -258,7 +258,6 @@
         {
           entryDN = readDN(lines);
         } catch (LDIFException le) {
-          entriesIgnored.incrementAndGet();
           continue;
         }
         if (entryDN == null)
@@ -279,7 +278,6 @@
           entriesRead.incrementAndGet();
           Message message = ERR_LDIF_SKIP.get(String.valueOf(entryDN));
           logToSkipWriter(lines, message);
-          entriesIgnored.incrementAndGet();
           continue;
         }
         entryID = rootContainer.getNextEntryID();
@@ -295,7 +293,6 @@
           entriesRead.incrementAndGet();
           Message message = ERR_LDIF_SKIP.get(String.valueOf(entryDN));
           logToSkipWriter(lines, message);
-          entriesIgnored.incrementAndGet();
           continue;
         }
         entriesRead.incrementAndGet();
@@ -325,8 +322,6 @@
         }
         Message message = ERR_LDIF_READ_ATTR_SKIP.get(String.valueOf(entryDN),
                                                        e.getMessage());
-        logToSkipWriter(lines, message);
-        entriesIgnored.incrementAndGet();
         suffix.removePending(entryDN);
         continue;
       }
@@ -383,7 +378,6 @@
           }
           Message message = ERR_LDIF_SKIP.get(String.valueOf(entryDN));
           logToSkipWriter(lines, message);
-          entriesIgnored.incrementAndGet();
           suffix.removePending(entryDN);
           continue;
         }
@@ -398,10 +392,9 @@
         Message message = ERR_LDIF_COULD_NOT_EVALUATE_FILTERS_FOR_IMPORT.
             get(String.valueOf(entry.getDN()), lastEntryLineNumber,
                 String.valueOf(e));
-                 logToSkipWriter(lines, message);
-          entriesIgnored.incrementAndGet();
-          suffix.removePending(entryDN);
-          continue;
+        logToSkipWriter(lines, message);
+        suffix.removePending(entryDN);
+        continue;
       }
 
 
@@ -426,7 +419,6 @@
           }
 
           logToRejectWriter(lines, m);
-          entriesRejected.incrementAndGet();
           suffix.removePending(entryDN);
           continue;
         }
@@ -451,7 +443,6 @@
                   lastEntryLineNumber,
                   invalidReason.toString());
           logToRejectWriter(lines, message);
-          entriesRejected.incrementAndGet();
           suffix.removePending(entryDN);
           continue;
         }
@@ -519,7 +510,6 @@
         entriesRead.incrementAndGet();
         Message message = ERR_LDIF_SKIP.get(String.valueOf(entryDN));
         logToSkipWriter(lines, message);
-        entriesIgnored.incrementAndGet();
         continue;
       }
       else
@@ -544,7 +534,6 @@
       }
       catch (LDIFException e)
       {
-        entriesRejected.incrementAndGet();
         throw e;
       }
 
@@ -598,7 +587,6 @@
           }
           Message message = ERR_LDIF_SKIP.get(String.valueOf(entryDN));
           logToSkipWriter(lines, message);
-          entriesIgnored.incrementAndGet();
           continue;
         }
       }
@@ -637,7 +625,6 @@
           }
 
           logToRejectWriter(lines, m);
-          entriesRejected.incrementAndGet();
           continue;
         }
       }
@@ -655,7 +642,6 @@
                   lastEntryLineNumber,
                   invalidReason.toString());
           logToRejectWriter(lines, message);
-          entriesRejected.incrementAndGet();
           throw new LDIFException(message, lastEntryLineNumber, true);
         }
         //Add any superior objectclass(s) missing in an entries
@@ -898,7 +884,6 @@
               ERR_LDIF_NO_ATTR_NAME.get(lastEntryLineNumber, line.toString());
 
       logToRejectWriter(lines, message);
-
       throw new LDIFException(message, lastEntryLineNumber, true);
     }
 
@@ -914,7 +899,6 @@
               ERR_LDIF_NO_DN.get(lastEntryLineNumber, line.toString());
 
       logToRejectWriter(lines, message);
-
       throw new LDIFException(message, lastEntryLineNumber, true);
     }
 
@@ -960,7 +944,6 @@
                         String.valueOf(e));
 
         logToRejectWriter(lines, message);
-
         throw new LDIFException(message, lastEntryLineNumber, true, e);
       }
 
@@ -980,7 +963,6 @@
                 de.getMessageObject());
 
         logToRejectWriter(lines, message);
-
         throw new LDIFException(message, lastEntryLineNumber, true, de);
       }
       catch (Exception e)
@@ -994,7 +976,6 @@
                 String.valueOf(e));
 
         logToRejectWriter(lines, message);
-
         throw new LDIFException(message, lastEntryLineNumber, true, e);
       }
     }
@@ -1024,7 +1005,6 @@
                 lastEntryLineNumber, line.toString(), de.getMessageObject());
 
         logToRejectWriter(lines, message);
-
         throw new LDIFException(message, lastEntryLineNumber, true, de);
       }
       catch (Exception e)
@@ -1039,7 +1019,6 @@
                 String.valueOf(e));
 
         logToRejectWriter(lines, message);
-
         throw new LDIFException(message, lastEntryLineNumber, true, e);
       }
     }
@@ -2106,6 +2085,7 @@
   private void logToRejectWriter(LinkedList<StringBuilder> lines,
       Message message) {
 
+    entriesRejected.incrementAndGet();
     BufferedWriter rejectWriter = importConfig.getRejectWriter();
     if (rejectWriter != null)
     {
@@ -2123,7 +2103,7 @@
    */
   private void logToSkipWriter(LinkedList<StringBuilder> lines,
       Message message) {
-
+    entriesIgnored.incrementAndGet();
     BufferedWriter skipWriter = importConfig.getSkipWriter();
     if (skipWriter != null)
     {

--
Gitblit v1.10.0