diff --git a/proposal/sandbox/input/src/main/org/apache/tools/ant/taskdefs/Input.java b/proposal/sandbox/input/src/main/org/apache/tools/ant/taskdefs/Input.java
index 605b171d8..95e55e8dc 100644
--- a/proposal/sandbox/input/src/main/org/apache/tools/ant/taskdefs/Input.java
+++ b/proposal/sandbox/input/src/main/org/apache/tools/ant/taskdefs/Input.java
@@ -54,7 +54,6 @@
package org.apache.tools.ant.taskdefs;
-import java.util.StringTokenizer;
import java.util.Vector;
import org.apache.tools.ant.BuildException;
@@ -62,11 +61,15 @@ import org.apache.tools.ant.Project;
import org.apache.tools.ant.Task;
import org.apache.tools.ant.input.InputRequest;
import org.apache.tools.ant.input.MultipleChoiceInputRequest;
+import org.apache.tools.ant.util.StringUtils;
/**
* Ant task to read input line from console.
*
* @author Ulrich Schmidt
+ * @author Stefan Bodewig
+ *
+ * @since Ant 1.5
*/
public class Input extends Task {
private String validargs = null;
@@ -124,11 +127,7 @@ public class Input extends Task {
public void execute () throws BuildException {
InputRequest request = null;
if (validargs != null) {
- Vector accept = new Vector();
- StringTokenizer stok = new StringTokenizer(validargs, ",", false);
- while (stok.hasMoreTokens()) {
- accept.addElement(stok.nextToken());
- }
+ Vector accept = StringUtils.split(validargs, ',');
request = new MultipleChoiceInputRequest(message, accept);
} else {
request = new InputRequest(message);
@@ -138,7 +137,7 @@ public class Input extends Task {
if (addproperty != null) {
if (project.getProperty(addproperty) == null) {
- project.setProperty(addproperty, request.getInput());
+ project.setNewProperty(addproperty, request.getInput());
} else {
log("Override ignored for " + addproperty,
Project.MSG_VERBOSE);
diff --git a/proposal/sandbox/input/src/testcases/org/apache/tools/ant/taskdefs/InputTest.java b/proposal/sandbox/input/src/testcases/org/apache/tools/ant/taskdefs/InputTest.java
index 51f6e4e4a..ab6950889 100644
--- a/proposal/sandbox/input/src/testcases/org/apache/tools/ant/taskdefs/InputTest.java
+++ b/proposal/sandbox/input/src/testcases/org/apache/tools/ant/taskdefs/InputTest.java
@@ -59,6 +59,7 @@ import org.apache.tools.ant.input.PropertyFileInputHandler;
/**
* @author Ulrich Schmidt
+ * @author Stefan Bodewig
*/
public class InputTest extends BuildFileTest {
@@ -67,8 +68,9 @@ public class InputTest extends BuildFileTest {
}
public void setUp() {
- System.getProperties().put(PropertyFileInputHandler.FILE_NAME_KEY,
- "src/etc/testcases/taskdefs/input.properties");
+ System.getProperties()
+ .put(PropertyFileInputHandler.FILE_NAME_KEY,
+ "src/etc/testcases/taskdefs/input.properties");
configureProject("src/etc/testcases/taskdefs/input.xml");
getProject().setInputHandler(new PropertyFileInputHandler());
}
@@ -82,13 +84,10 @@ public class InputTest extends BuildFileTest {
}
public void test3() {
- try {
- executeTarget("test3");
- fail("Input for \"All data is going to be deleted from DB continue?\" should be invalid");
- } catch (org.apache.tools.ant.BuildException e) {
- assertEquals("Found invalid input test for All data is going to be deleted from DB continue?",
- e.getMessage());
- }
+ expectSpecificBuildException("test3", "invalid input",
+ "Found invalid input test for All data is"
+ + " going to be deleted from DB"
+ + " continue?");
}
public void test5() {