From 5f940cf887e85e1595805d4a4d59b8ae5b0f585a Mon Sep 17 00:00:00 2001
From: dugan <dugan@localhost>
Date: Thu, 02 Apr 2009 03:21:47 +0000
Subject: [PATCH] Issue 3251: LDIFReader rejectLastEntry prints wrong entry

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

diff --git a/opends/src/server/org/opends/server/util/LDIFReader.java b/opends/src/server/org/opends/server/util/LDIFReader.java
index ef7b3c2..e157b49 100644
--- a/opends/src/server/org/opends/server/util/LDIFReader.java
+++ b/opends/src/server/org/opends/server/util/LDIFReader.java
@@ -1148,6 +1148,40 @@
     }
   }
 
+  /**
+   * Log the specified entry and messages in the reject writer. The method is
+   * intended to be used in a threaded environment, where individual import
+   * threads need to log an entry and message to the reject file.
+   *
+   * @param e The entry to log.
+   * @param message The message to log.
+   */
+  public synchronized void rejectEntry(Entry e, Message message) {
+    BufferedWriter rejectWriter = importConfig.getRejectWriter();
+    entriesRejected++;
+    if (rejectWriter != null) {
+      try {
+        if ((message != null) && (message.length() > 0)) {
+          rejectWriter.write("# ");
+          rejectWriter.write(message.toString());
+          rejectWriter.newLine();
+        }
+        String dnStr = e.getDN().toString();
+        rejectWriter.write(dnStr);
+        rejectWriter.newLine();
+        List<StringBuilder> eLDIF = e.toLDIF();
+        for(StringBuilder l : eLDIF) {
+          rejectWriter.write(l.toString());
+          rejectWriter.newLine();
+        }
+        rejectWriter.newLine();
+      } catch (IOException ex) {
+        if (debugEnabled())
+          TRACER.debugCaught(DebugLogLevel.ERROR, ex);
+      }
+    }
+  }
+
 
 
   /**

--
Gitblit v1.10.0