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:36:20 UTC

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

[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/e390a81e
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/e390a81e
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/e390a81e

Branch: refs/heads/master
Commit: e390a81eaf89c408a2ba8c5c3671b82d99ae5fac
Parents: 762bae6
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:36:11 2015 +0200

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


http://git-wip-us.apache.org/repos/asf/karaf/blob/e390a81e/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 aa8f11d..65bcedf 100644
--- a/client/src/main/java/org/apache/karaf/client/Main.java
+++ b/client/src/main/java/org/apache/karaf/client/Main.java
@@ -77,31 +77,35 @@ public class Main {
         Terminal terminal = null;
         int exitStatus = 0;
         try {
-            final Console console = System.console();
             client = SshClient.setUpDefaultClient();
             setupAgent(config.getUser(), config.getKeyFile(), client);
-            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", config.getUser());