From 02e05c396c23a35dcb105c29f36be883bd3f6576 Mon Sep 17 00:00:00 2001
From: jvergara <jvergara@localhost>
Date: Wed, 25 Mar 2009 12:22:05 +0000
Subject: [PATCH] Fix for issue 3528 (A scheduled task should check that the start time has not passed)
---
opends/src/server/org/opends/server/tools/tasks/TaskTool.java | 19 +++++++++++++++----
1 files changed, 15 insertions(+), 4 deletions(-)
diff --git a/opends/src/server/org/opends/server/tools/tasks/TaskTool.java b/opends/src/server/org/opends/server/tools/tasks/TaskTool.java
index 344f22e..4eb7c89 100644
--- a/opends/src/server/org/opends/server/tools/tasks/TaskTool.java
+++ b/opends/src/server/org/opends/server/tools/tasks/TaskTool.java
@@ -22,7 +22,7 @@
* CDDL HEADER END
*
*
- * Copyright 2007-2008 Sun Microsystems, Inc.
+ * Copyright 2007-2009 Sun Microsystems, Inc.
*/
package org.opends.server.tools.tasks;
@@ -32,6 +32,8 @@
import org.opends.server.util.args.ArgumentException;
import org.opends.server.util.args.StringArgument;
import org.opends.server.util.args.ArgumentGroup;
+import org.opends.server.util.cli.CLIException;
+
import static org.opends.server.util.StaticUtils.wrapText;
import static org.opends.server.util.StaticUtils.getExceptionMessage;
import static org.opends.server.util.ServerConstants.MAX_LINE_WIDTH;
@@ -233,12 +235,21 @@
* called after the <code>ArgumentParser.parseArguments</code> has
* been called.
*
- * @throws ArgumentException if there is a problem with the arguments
+ * @throws ArgumentException if there is a problem with the arguments.
+ * @throws CLIException if there is a problem with one of the values provided
+ * by the user.
*/
- protected void validateTaskArgs() throws ArgumentException {
+ protected void validateTaskArgs() throws ArgumentException, CLIException {
if (startArg.isPresent() && !NOW.equals(startArg.getValue())) {
try {
- StaticUtils.parseDateTimeString(startArg.getValue());
+ Date date = StaticUtils.parseDateTimeString(startArg.getValue());
+ // Check that the provided date is not previous to the current date.
+ Date currentDate = new Date(System.currentTimeMillis());
+ if (currentDate.after(date))
+ {
+ throw new CLIException(ERR_START_DATETIME_ALREADY_PASSED.get(
+ startArg.getValue()));
+ }
} catch (ParseException pe) {
throw new ArgumentException(ERR_START_DATETIME_FORMAT.get());
}
--
Gitblit v1.10.0