SshConnectionSshd - Sonar Fix 40/82540/2
authorDriptaroop Das <driptaroop.das@in.ibm.com>
Sun, 17 Mar 2019 19:07:21 +0000 (00:37 +0530)
committerPatrick Brady <patrick.brady@att.com>
Tue, 19 Mar 2019 06:26:00 +0000 (06:26 +0000)
SshConnectionSshd - Sonar Fix

Issue-ID: APPC-1543
Change-Id: Id02cd65f4dfeebb43c4eb637d50b649c684397c7
Signed-off-by: Driptaroop Das <driptaroop.das@in.ibm.com>
appc-adapters/appc-ssh-adapter/appc-ssh-adapter-sshd/src/main/java/org/onap/appc/adapter/ssh/sshd/SshConnectionSshd.java

index 299ad77..ee44608 100644 (file)
@@ -173,28 +173,22 @@ class SshConnectionSshd implements SshConnection {
     }
 
     private int execCommand(String cmd, OutputStream out, OutputStream err, boolean usePty) {
-        try {
+        try(ChannelExec client = clientSession.createExecChannel(cmd)) {
             if (logger.isDebugEnabled()) {
                 logger.debug("SSH: executing command");
             }
-            ChannelExec client = clientSession.createExecChannel(cmd);
             client.setUsePty(usePty); // use pseudo-tty?
             client.setOut(out);
             client.setErr(err);
             OpenFuture openFuture = client.open();
             int exitStatus;
-            try {
-                client.waitFor(Arrays.asList(ClientChannelEvent.CLOSED), timeout);
-                openFuture.verify();
-                Integer exitStatusI = client.getExitStatus();
-                if (exitStatusI == null) {
-                    throw new SshException("Error executing command [" + cmd + "] over SSH [" + username + "@" + host
-                        + ":" + port + "]. Operation timed out.");
-                }
-                exitStatus = exitStatusI;
-            } finally {
-                client.close(false);
+            client.waitFor(Arrays.asList(ClientChannelEvent.CLOSED), timeout);
+            openFuture.verify();
+            Integer exitStatusI = client.getExitStatus();
+            if (exitStatusI == null) {
+                throw new SshException("Error executing command [" + cmd + "] over SSH [" + username + "@" + host + ":" + port + "]. Operation timed out.");
             }
+            exitStatus = exitStatusI;
             return exitStatus;
         } catch (RuntimeException e) {
             throw e;