bodewig 2004/06/23 05:26:35 Modified: . Tag: ANT_16_BRANCH TODO WHATSNEW src/main/org/apache/tools/ant/taskdefs/optional/net Tag: ANT_16_BRANCH TelnetTask.java Log: merge Revision Changes Path No revision No revision 1.3.2.20 +0 -3 ant/Attic/TODO Index: TODO =================================================================== RCS file: /home/cvs/ant/Attic/TODO,v retrieving revision 1.3.2.19 retrieving revision 1.3.2.20 diff -u -r1.3.2.19 -r1.3.2.20 --- TODO 22 Jun 2004 21:30:55 -0000 1.3.2.19 +++ TODO 23 Jun 2004 12:26:34 -0000 1.3.2.20 @@ -18,9 +18,6 @@ * <junitreport> and JDK 1.5 [Stefan hopes that Stephane solves it for him, otherwise he'll do it himself] -* telnet doesn't disconnect properly (PR 25935) [Stefan unless Peter - is faster]. - * AntClassLoader parent loader [Start thread, Peter] * delete - do not follow symlinks [Peter, may be dropped for 1.6.2] 1.503.2.111 +2 -0 ant/WHATSNEW Index: WHATSNEW =================================================================== RCS file: /home/cvs/ant/WHATSNEW,v retrieving revision 1.503.2.110 retrieving revision 1.503.2.111 diff -u -r1.503.2.110 -r1.503.2.111 --- WHATSNEW 22 Jun 2004 21:30:55 -0000 1.503.2.110 +++ WHATSNEW 23 Jun 2004 12:26:34 -0000 1.503.2.111 @@ -116,6 +116,8 @@ * <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. + Other changes: -------------- * doc fix concerning the dependencies of the ftp task No revision No revision 1.20.2.6 +30 -23 ant/src/main/org/apache/tools/ant/taskdefs/optional/net/TelnetTask.java Index: TelnetTask.java =================================================================== RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/taskdefs/optional/net/TelnetTask.java,v retrieving revision 1.20.2.5 retrieving revision 1.20.2.6 diff -u -r1.20.2.5 -r1.20.2.6 --- TelnetTask.java 9 Mar 2004 17:01:51 -0000 1.20.2.5 +++ TelnetTask.java 23 Jun 2004 12:26:35 -0000 1.20.2.6 @@ -56,11 +56,6 @@ private int port = 23; /** - * The Object which handles the telnet session. - */ - private AntTelnetClient telnet = null; - - /** * The list of read/write commands for this session */ private Vector telnetTasks = new Vector(); @@ -97,24 +92,36 @@ } /** Create the telnet client object */ - telnet = new AntTelnetClient(); + AntTelnetClient telnet = null; try { - telnet.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 = telnetTasks.elements(); - while (tasksToRun != null && tasksToRun.hasMoreElements()) { - TelnetSubTask task = (TelnetSubTask) tasksToRun.nextElement(); - if (task instanceof TelnetRead && defaultTimeout != null) { - ((TelnetRead) task).setDefaultTimeout(defaultTimeout); + telnet = new AntTelnetClient(); + try { + telnet.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(telnet); + } + /** Process each sub command */ + Enumeration tasksToRun = telnetTasks.elements(); + while (tasksToRun != null && tasksToRun.hasMoreElements()) { + TelnetSubTask task = (TelnetSubTask) tasksToRun.nextElement(); + if (task instanceof TelnetRead && defaultTimeout != null) { + ((TelnetRead) task).setDefaultTimeout(defaultTimeout); + } + task.execute(telnet); + } + } finally { + if (telnet != null) { + try { + telnet.disconnect(); + } catch (IOException e) { + throw new BuildException("Error disconnecting from " + + server); + } } - task.execute(telnet); } } @@ -122,7 +129,7 @@ * Process a 'typical' login. If it differs, use the read * and write tasks explicitely */ - private void login() { + private void login(AntTelnetClient telnet) { if (addCarriageReturn) { telnet.sendString("\n", true); }
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]