diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/ssh/SSHExec.java b/src/main/org/apache/tools/ant/taskdefs/optional/ssh/SSHExec.java index c60ade729..1c9b5445a 100644 --- a/src/main/org/apache/tools/ant/taskdefs/optional/ssh/SSHExec.java +++ b/src/main/org/apache/tools/ant/taskdefs/optional/ssh/SSHExec.java @@ -137,9 +137,10 @@ public class SSHExec extends SSHBase { ByteArrayOutputStream out = new ByteArrayOutputStream(); TeeOutputStream tee = new TeeOutputStream(out, System.out); + Session session = null; try { // execute the command - Session session = openSession(); + session = openSession(); session.setTimeout((int) maxwait); final ChannelExec channel = (ChannelExec) session.openChannel("exec"); channel.setCommand(command); @@ -219,6 +220,10 @@ public class SSHExec extends SSHBase { } else { log("Caught exception: " + e.getMessage(), Project.MSG_ERR); } + } finally { + if (session != null && session.isConnected()) { + session.disconnect(); + } } }