You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by gn...@apache.org on 2015/04/10 17:42:12 UTC

karaf git commit: [KARAF-3651] The karaf client can cause a NPE in org.apache.sshd.common.util.Buffer.putString(Buffer.java:434)

Repository: karaf
Updated Branches:
  refs/heads/karaf-2.x 26eaa5bf2 -> b35da8bd8


[KARAF-3651] The karaf client can cause a NPE in org.apache.sshd.common.util.Buffer.putString(Buffer.java:434)


Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/b35da8bd
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/b35da8bd
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/b35da8bd

Branch: refs/heads/karaf-2.x
Commit: b35da8bd8674ec4ef15e5c0d335d4c712580c5b4
Parents: 26eaa5b
Author: Guillaume Nodet <gn...@gmail.com>
Authored: Fri Apr 10 17:36:11 2015 +0200
Committer: Guillaume Nodet <gn...@gmail.com>
Committed: Fri Apr 10 17:41:40 2015 +0200

----------------------------------------------------------------------
 .../main/java/org/apache/karaf/client/Main.java | 33 +++++++++++---------
 1 file changed, 18 insertions(+), 15 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/karaf/blob/b35da8bd/client/src/main/java/org/apache/karaf/client/Main.java
----------------------------------------------------------------------
diff --git a/client/src/main/java/org/apache/karaf/client/Main.java b/client/src/main/java/org/apache/karaf/client/Main.java
index 6dc6b04..97d4412 100644
--- a/client/src/main/java/org/apache/karaf/client/Main.java
+++ b/client/src/main/java/org/apache/karaf/client/Main.java
@@ -221,32 +221,35 @@ public class Main {
         SshAgent agent = null;
         int exitStatus = 0;
         try {
-
-            final Console console = System.console();
             client = SshClient.setUpDefaultClient();
             setupAgent(user, client, keyFile);
-            client.setUserInteraction(new UserInteraction() {
-                public void welcome(String banner) {
-                    System.out.println(banner);
-                }
+            final Console console = System.console();
+            if (console != null) {
+                client.setUserInteraction(new UserInteraction() {
+                    public void welcome(String banner) {
+                        System.out.println(banner);
+                    }
 
-                public String[] interactive(String destination, String name, String instruction, String[] prompt, boolean[] echo) {
-                    String[] answers = new String[prompt.length];
-                    try {
-                        for (int i = 0; i < prompt.length; i++) {
-                            if (console != null) {
+                    public String[] interactive(String destination, String name, String instruction, String[] prompt, boolean[] echo) {
+                        String[] answers = new String[prompt.length];
+                        try {
+                            for (int i = 0; i < prompt.length; i++) {
                                 if (echo[i]) {
                                     answers[i] = console.readLine(prompt[i] + " ");
                                 } else {
                                     answers[i] = new String(console.readPassword(prompt[i] + " "));
                                 }
+                                if (answers[i] == null) {
+                                    return null;
+                                }
                             }
+                            return answers;
+                        } catch (IOError e) {
+                            return null;
                         }
-                    } catch (IOError e) {
                     }
-                    return answers;
-                }
-            });
+                });
+            }
             client.start();
             if (console != null) {
                 console.printf("Logging in as %s\n", user);