bodewig 2004/06/23 05:32:04
Modified: . Tag: ANT_16_BRANCH WHATSNEW
src/main/org/apache/tools/ant/taskdefs/optional/net Tag:
ANT_16_BRANCH RExecTask.java
Log:
merge
Revision Changes Path
No revision
No revision
1.503.2.112 +1 -1 ant/WHATSNEW
Index: WHATSNEW
===================================================================
RCS file: /home/cvs/ant/WHATSNEW,v
retrieving revision 1.503.2.111
retrieving revision 1.503.2.112
diff -u -r1.503.2.111 -r1.503.2.112
--- WHATSNEW 23 Jun 2004 12:26:34 -0000 1.503.2.111
+++ WHATSNEW 23 Jun 2004 12:32:03 -0000 1.503.2.112
@@ -116,7 +116,7 @@
* <scp> now has (local|remote)tofile attributes to rename files on the
fly. Bugzilla Report 26758.
-* <telnet> didn't close the session. Bugzilla Report 25935.
+* <telnet> and <rexec> didn't close the session. Bugzilla Report 25935.
Other changes:
--------------
No revision
No revision
1.4.2.4 +32 -25
ant/src/main/org/apache/tools/ant/taskdefs/optional/net/RExecTask.java
Index: RExecTask.java
===================================================================
RCS file:
/home/cvs/ant/src/main/org/apache/tools/ant/taskdefs/optional/net/RExecTask.java,v
retrieving revision 1.4.2.3
retrieving revision 1.4.2.4
diff -u -r1.4.2.3 -r1.4.2.4
--- RExecTask.java 9 Feb 2004 22:12:35 -0000 1.4.2.3
+++ RExecTask.java 23 Jun 2004 12:32:03 -0000 1.4.2.4
@@ -62,11 +62,6 @@
private int port = RExecClient.DEFAULT_PORT;
/**
- * The Object which handles the rexec session.
- */
- private AntRExecClient rexec = null;
-
- /**
* The list of read/write commands for this session
*/
private Vector rexecTasks = new Vector();
@@ -322,34 +317,46 @@
}
/** Create the telnet client object */
- rexec = new AntRExecClient();
+ AntRExecClient rexec = null;
try {
- rexec.connect(server, port);
- } catch (IOException e) {
- throw new BuildException("Can't connect to " + server);
- }
- /** Login if userid and password were specified */
- if (userid != null && password != null) {
- login();
- }
- /** Process each sub command */
- Enumeration tasksToRun = rexecTasks.elements();
- while (tasksToRun != null && tasksToRun.hasMoreElements()) {
- RExecSubTask task = (RExecSubTask) tasksToRun.nextElement();
- if (task instanceof RExecRead && defaultTimeout != null) {
- ((RExecRead) task).setDefaultTimeout(defaultTimeout);
+ rexec = new AntRExecClient();
+ try {
+ rexec.connect(server, port);
+ } catch (IOException e) {
+ throw new BuildException("Can't connect to " + server);
+ }
+ /** Login if userid and password were specified */
+ if (userid != null && password != null) {
+ login(rexec);
+ }
+ /** Process each sub command */
+ Enumeration tasksToRun = rexecTasks.elements();
+ while (tasksToRun != null && tasksToRun.hasMoreElements()) {
+ RExecSubTask task = (RExecSubTask) tasksToRun.nextElement();
+ if (task instanceof RExecRead && defaultTimeout != null) {
+ ((RExecRead) task).setDefaultTimeout(defaultTimeout);
+ }
+ task.execute(rexec);
}
- task.execute(rexec);
- }
- /** Keep reading input stream until end of it or time-out */
- rexec.waitForEOF(defaultTimeout);
+ /** Keep reading input stream until end of it or time-out */
+ rexec.waitForEOF(defaultTimeout);
+ } finally {
+ if (rexec != null) {
+ try {
+ rexec.disconnect();
+ } catch (IOException e) {
+ throw new BuildException("Error disconnecting from "
+ + server);
+ }
+ }
+ }
}
/**
* Process a 'typical' login. If it differs, use the read
* and write tasks explicitely
*/
- private void login() {
+ private void login(AntRExecClient rexec) {
if (addCarriageReturn) {
rexec.sendString("\n", true);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]