From 04eb96fe835d6e9e12db6b359fb862fb8b7a3fcd Mon Sep 17 00:00:00 2001
From: jarnou <jarnou@localhost>
Date: Mon, 09 Jul 2007 16:13:16 +0000
Subject: [PATCH] Bug: 1428 Synopsis: import-ldif could allow to write skipped entries to a specified file
---
opendj-sdk/opends/src/server/org/opends/server/util/LDIFReader.java | 65 ++++++++++++++++++++++++++++----
1 files changed, 57 insertions(+), 8 deletions(-)
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 75c5b72..91268dc 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
@@ -224,6 +224,10 @@
entryDN);
}
entriesRead++;
+ int msgID = MSGID_LDIF_SKIP;
+ String message = getMessage(msgID, String.valueOf(entryDN),
+ lastEntryLineNumber);
+ logToSkipWriter(lines, message);
entriesIgnored++;
continue;
}
@@ -269,6 +273,10 @@
"that should be included based on the include and exclude " +
"filters.", entryDN);
}
+ int msgID = MSGID_LDIF_SKIP;
+ String message = getMessage(msgID, String.valueOf(entryDN),
+ lastEntryLineNumber);
+ logToSkipWriter(lines, message);
entriesIgnored++;
continue;
}
@@ -294,6 +302,10 @@
pluginConfigManager.invokeLDIFImportPlugins(importConfig, entry);
if (! pluginResult.continueEntryProcessing())
{
+ int msgID = MSGID_LDIF_SKIP;
+ String message = getMessage(msgID, String.valueOf(entryDN),
+ lastEntryLineNumber);
+ logToSkipWriter(lines, message);
entriesIgnored++;
continue;
}
@@ -1738,8 +1750,6 @@
return value;
}
-
-
/**
* Log a message to the reject writer if one is configured.
*
@@ -1754,18 +1764,56 @@
BufferedWriter rejectWriter = importConfig.getRejectWriter();
if (rejectWriter != null)
{
+ logToWriter(rejectWriter, lines, message);
+ }
+ }
+
+ /**
+ * Log a message to the reject writer if one is configured.
+ *
+ * @param lines
+ * The set of rejected lines.
+ * @param message
+ * The associated error message.
+ */
+ private void logToSkipWriter(LinkedList<StringBuilder> lines,
+ String message) {
+
+ BufferedWriter skipWriter = importConfig.getSkipWriter();
+ if (skipWriter != null)
+ {
+ logToWriter(skipWriter, lines, message);
+ }
+ }
+
+ /**
+ * Log a message to the given writer.
+ *
+ * @param writer
+ * The writer to write to.
+ * @param lines
+ * The set of rejected lines.
+ * @param message
+ * The associated error message.
+ */
+ private void logToWriter(BufferedWriter writer,
+ LinkedList<StringBuilder> lines,
+ String message)
+ {
+ if (writer != null)
+ {
try
{
- rejectWriter.write("# ");
- rejectWriter.write(message);
- rejectWriter.newLine();
+ writer.write("# ");
+ writer.write(message);
+ writer.newLine();
for (StringBuilder sb : lines)
{
- rejectWriter.write(sb.toString());
- rejectWriter.newLine();
+ writer.write(sb.toString());
+ writer.newLine();
}
- rejectWriter.newLine();
+ writer.newLine();
}
catch (Exception e)
{
@@ -1776,5 +1824,6 @@
}
}
}
+
}
--
Gitblit v1.10.0