From a7f45460c31c7340310aa65c99574c7c1e0e2059 Mon Sep 17 00:00:00 2001
From: kenneth_suter <kenneth_suter@localhost>
Date: Thu, 23 Aug 2007 17:46:41 +0000
Subject: [PATCH] Expands the interfaces of backup and restore with arguments for specifying an LDAP connection that can be used to schedule these operations as tasks in addition to the current behavior of operating locally.

---
 opendj-sdk/opends/src/server/org/opends/server/tools/tasks/TaskSchedulingClient.java |   23 +++++++++++++----------
 1 files changed, 13 insertions(+), 10 deletions(-)

diff --git a/opendj-sdk/opends/src/server/org/opends/server/tools/tasks/TaskSchedulingClient.java b/opendj-sdk/opends/src/server/org/opends/server/tools/tasks/TaskSchedulingClient.java
index 7ea3541..90f700f 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/tools/tasks/TaskSchedulingClient.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/tools/tasks/TaskSchedulingClient.java
@@ -29,6 +29,7 @@
 
 import org.opends.server.types.LDAPException;
 import org.opends.server.types.RawAttribute;
+import org.opends.server.types.ResultCode;
 import org.opends.server.protocols.asn1.ASN1OctetString;
 import org.opends.server.protocols.asn1.ASN1Exception;
 import org.opends.server.protocols.ldap.LDAPControl;
@@ -82,8 +83,8 @@
    * Schedule a task for execution by writing an entry to the task backend.
    *
    * @param information to be scheduled
-   * @param out stream for writing error messages
-   * @param err stream for writing error messages
+   * @param out stream for writing error messages; may be null
+   * @param err stream for writing error messages; may be null
    * @return int representing an LDAP return code
    */
   public synchronized int schedule(TaskScheduleInformation information,
@@ -136,26 +137,26 @@
       if (responseMessage == null)
       {
         Message message = ERR_TASK_CLIENT_UNEXPECTED_CONNECTION_CLOSURE.get();
-        err.println(wrapText(message, MAX_LINE_WIDTH));
+        if (err != null) err.println(wrapText(message, MAX_LINE_WIDTH));
         return LDAPResultCode.CLIENT_SIDE_SERVER_DOWN;
       }
     }
     catch (IOException ioe)
     {
       Message message = ERR_TASK_CLIENT_IO_ERROR.get(String.valueOf(ioe));
-      err.println(wrapText(message, MAX_LINE_WIDTH));
+      if (err != null) err.println(wrapText(message, MAX_LINE_WIDTH));
       return LDAPResultCode.CLIENT_SIDE_SERVER_DOWN;
     }
     catch (ASN1Exception ae)
     {
       Message message = ERR_TASK_CLIENT_DECODE_ERROR.get(ae.getMessage());
-      err.println(wrapText(message, MAX_LINE_WIDTH));
+      if (err != null) err.println(wrapText(message, MAX_LINE_WIDTH));
       return LDAPResultCode.CLIENT_SIDE_DECODING_ERROR;
     }
     catch (LDAPException le)
     {
       Message message = ERR_TASK_CLIENT_DECODE_ERROR.get(le.getMessage());
-      err.println(wrapText(message, MAX_LINE_WIDTH));
+      if (err != null) err.println(wrapText(message, MAX_LINE_WIDTH));
       return LDAPResultCode.CLIENT_SIDE_DECODING_ERROR;
     }
 
@@ -176,7 +177,7 @@
           Message message = extendedResponse.getErrorMessage();
           if (message != null)
           {
-            err.println(wrapText(message, MAX_LINE_WIDTH));
+            if (err != null) err.println(wrapText(message, MAX_LINE_WIDTH));
           }
 
           return extendedResponse.getResultCode();
@@ -185,18 +186,20 @@
 
       Message message = ERR_TASK_CLIENT_INVALID_RESPONSE_TYPE.get(
               responseMessage.getProtocolOpName());
-      err.println(wrapText(message, MAX_LINE_WIDTH));
+      if (err != null) err.println(wrapText(message, MAX_LINE_WIDTH));
       return LDAPResultCode.CLIENT_SIDE_LOCAL_ERROR;
     }
 
     AddResponseProtocolOp addResponse =
          responseMessage.getAddResponseProtocolOp();
     Message errorMessage = addResponse.getErrorMessage();
-    if (errorMessage != null)
+    if (errorMessage != null && err != null)
     {
       err.println(wrapText(errorMessage, MAX_LINE_WIDTH));
     }
-    else
+
+    if (addResponse.getResultCode() == ResultCode.SUCCESS.getIntValue() &&
+          out != null)
     {
       out.println(wrapText(INFO_TASK_CLIENT_TASK_SCHEDULED.get(taskID),
                            MAX_LINE_WIDTH));

--
Gitblit v1.10.0