From 49587b4efe9d7669148b9c8978ac4ebfc2de92c5 Mon Sep 17 00:00:00 2001
From: kenneth_suter <kenneth_suter@localhost>
Date: Tue, 02 Oct 2007 19:28:38 +0000
Subject: [PATCH] Addresses issue 2370 in which the non-interactive option issued a success message to a request to cancel an uninterruptable task while executing. This code also causes the command to return a non-zero error code if a non-interactive cancel or info operation is unsuccessful.
---
opends/src/server/org/opends/server/tools/ManageTasks.java | 21 ++++++++++++++++-----
1 files changed, 16 insertions(+), 5 deletions(-)
diff --git a/opends/src/server/org/opends/server/tools/ManageTasks.java b/opends/src/server/org/opends/server/tools/ManageTasks.java
index e230034..f9cf76c 100644
--- a/opends/src/server/org/opends/server/tools/ManageTasks.java
+++ b/opends/src/server/org/opends/server/tools/ManageTasks.java
@@ -252,12 +252,16 @@
} else if (task.isPresent()) {
println();
- new PrintTaskInfo(task.getValue()).invoke(this);
+ MenuResult<TaskEntry> r =
+ new PrintTaskInfo(task.getValue()).invoke(this);
+ if (r.isAgain()) return 1;
} else if (summary.isPresent()) {
println();
printSummaryTable();
} else if (cancel.isPresent()) {
- new CancelTask(cancel.getValue()).invoke(this);
+ MenuResult<TaskEntry> r =
+ new CancelTask(cancel.getValue()).invoke(this);
+ if (r.isAgain()) return 1;
}
} catch (LDAPConnectionException lce) {
@@ -713,6 +717,7 @@
} catch (Exception e) {
app.println(ERR_TASKINFO_RETRIEVING_TASK_ENTRY.get(
taskId, e.getMessage()));
+ return MenuResult.again();
}
return MenuResult.success(taskEntry);
}
@@ -911,9 +916,15 @@
throws CLIException
{
try {
- TaskEntry entry = app.getTaskClient().cancelTask(taskId);
- app.println(INFO_TASKINFO_CMD_CANCEL_SUCCESS.get(taskId));
- return MenuResult.success(entry);
+ TaskEntry entry = app.getTaskClient().getTaskEntry(taskId);
+ if (entry.isCancelable()) {
+ app.getTaskClient().cancelTask(taskId);
+ app.println(INFO_TASKINFO_CMD_CANCEL_SUCCESS.get(taskId));
+ return MenuResult.success(entry);
+ } else {
+ app.println(ERR_TASKINFO_TASK_NOT_CANCELABLE_TASK.get(taskId));
+ return MenuResult.again();
+ }
} catch (Exception e) {
app.println(ERR_TASKINFO_CANCELING_TASK.get(
taskId, e.getMessage()));
--
Gitblit v1.10.0