From cb874f4953806e281bc7030a098dbd3acce9cf86 Mon Sep 17 00:00:00 2001
From: matthew_swift <matthew_swift@localhost>
Date: Wed, 14 Jan 2009 14:03:06 +0000
Subject: [PATCH] Fix issue 3579: import-ldif countRejects does not work as expected

---
 opendj-sdk/opends/src/server/org/opends/server/tools/ImportLDIF.java |   55 ++++++++++++++++++++++++++++++++++---------------------
 1 files changed, 34 insertions(+), 21 deletions(-)

diff --git a/opendj-sdk/opends/src/server/org/opends/server/tools/ImportLDIF.java b/opendj-sdk/opends/src/server/org/opends/server/tools/ImportLDIF.java
index 4d002fc..f54160c 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/tools/ImportLDIF.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/tools/ImportLDIF.java
@@ -22,12 +22,19 @@
  * CDDL HEADER END
  *
  *
- *      Copyright 2006-2008 Sun Microsystems, Inc.
+ *      Copyright 2006-2009 Sun Microsystems, Inc.
  */
 package org.opends.server.tools;
 
 
 
+import static org.opends.messages.ToolMessages.*;
+import static org.opends.server.config.ConfigConstants.*;
+import static org.opends.server.loggers.ErrorLogger.*;
+import static org.opends.server.tools.ToolConstants.*;
+import static org.opends.server.util.ServerConstants.*;
+import static org.opends.server.util.StaticUtils.*;
+
 import java.io.File;
 import java.io.OutputStream;
 import java.io.PrintStream;
@@ -36,50 +43,42 @@
 import java.util.List;
 import java.util.Random;
 
+import org.opends.messages.Message;
 import org.opends.server.admin.std.server.BackendCfg;
 import org.opends.server.api.Backend;
-import org.opends.server.api.ErrorLogPublisher;
 import org.opends.server.api.DebugLogPublisher;
+import org.opends.server.api.ErrorLogPublisher;
 import org.opends.server.api.plugin.PluginType;
 import org.opends.server.config.ConfigException;
-import static org.opends.server.config.ConfigConstants.*;
 import org.opends.server.core.CoreConfigManager;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.core.LockFileManager;
 import org.opends.server.extensions.ConfigFileHandler;
-import org.opends.server.loggers.TextWriter;
-import org.opends.server.loggers.TextErrorLogPublisher;
 import org.opends.server.loggers.ErrorLogger;
-import org.opends.server.loggers.debug.TextDebugLogPublisher;
+import org.opends.server.loggers.TextErrorLogPublisher;
+import org.opends.server.loggers.TextWriter;
 import org.opends.server.loggers.debug.DebugLogger;
-
+import org.opends.server.loggers.debug.TextDebugLogPublisher;
+import org.opends.server.protocols.asn1.ASN1OctetString;
+import org.opends.server.protocols.ldap.LDAPAttribute;
+import org.opends.server.tasks.ImportTask;
 import org.opends.server.tools.makeldif.TemplateFile;
+import org.opends.server.tools.tasks.TaskTool;
 import org.opends.server.types.AttributeType;
-import org.opends.server.types.DirectoryException;
 import org.opends.server.types.DN;
+import org.opends.server.types.DirectoryException;
 import org.opends.server.types.ExistingFileBehavior;
 import org.opends.server.types.InitializationException;
 import org.opends.server.types.LDIFImportConfig;
 import org.opends.server.types.LDIFImportResult;
 import org.opends.server.types.NullOutputStream;
-import org.opends.server.types.SearchFilter;
 import org.opends.server.types.RawAttribute;
+import org.opends.server.types.SearchFilter;
 import org.opends.server.util.args.ArgumentException;
 import org.opends.server.util.args.BooleanArgument;
 import org.opends.server.util.args.IntegerArgument;
-import org.opends.server.util.args.StringArgument;
 import org.opends.server.util.args.LDAPConnectionArgumentParser;
-
-import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.messages.ToolMessages.*;
-import org.opends.messages.Message;
-import static org.opends.server.util.ServerConstants.*;
-import static org.opends.server.util.StaticUtils.*;
-import static org.opends.server.tools.ToolConstants.*;
-import org.opends.server.tools.tasks.TaskTool;
-import org.opends.server.tasks.ImportTask;
-import org.opends.server.protocols.asn1.ASN1OctetString;
-import org.opends.server.protocols.ldap.LDAPAttribute;
+import org.opends.server.util.args.StringArgument;
 
 
 /**
@@ -448,6 +447,19 @@
       return 1;
     }
 
+    // Count rejects option requires the ability to return result codes
+    // which are potentially greater than 1. This is not supported by
+    // the task framework.
+    if (countRejects.isPresent()
+        && argParser.connectionArgumentsPresent())
+    {
+      Message message =
+          ERR_LDIFIMPORT_COUNT_REJECTS_REQUIRES_OFFLINE
+              .get(countRejects.getLongIdentifier());
+      err.println(wrapText(message, MAX_LINE_WIDTH));
+      return 1;
+    }
+
     // Don't write non-error messages to console if quite
     if (quietMode.isPresent()) {
       out = new PrintStream(NullOutputStream.instance());
@@ -653,6 +665,7 @@
   /**
    * {@inheritDoc}
    */
+  @Override
   protected int processLocal(boolean initializeServer,
                            PrintStream out,
                            PrintStream err) {

--
Gitblit v1.10.0