Repository: karaf
Updated Branches:
  refs/heads/karaf-3.0.x f96a4982c -> 805a3db98


[KARAF-3269]ssh into karaf as user with no roles throws exception and user 
shell stays frozen
(cherry picked from commit fb7f0ddc0f1e34142135173ca013dfd84435bb51)


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

Branch: refs/heads/karaf-3.0.x
Commit: 805a3db98ec6a14a6e8567605823f1fc8fd1b9d5
Parents: f96a498
Author: Freeman Fang <[email protected]>
Authored: Sat Oct 11 12:10:41 2014 +0800
Committer: Freeman Fang <[email protected]>
Committed: Sat Oct 11 12:11:40 2014 +0800

----------------------------------------------------------------------
 .../java/org/apache/karaf/shell/ssh/ShellFactoryImpl.java   | 9 +++++++++
 1 file changed, 9 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/karaf/blob/805a3db9/shell/ssh/src/main/java/org/apache/karaf/shell/ssh/ShellFactoryImpl.java
----------------------------------------------------------------------
diff --git 
a/shell/ssh/src/main/java/org/apache/karaf/shell/ssh/ShellFactoryImpl.java 
b/shell/ssh/src/main/java/org/apache/karaf/shell/ssh/ShellFactoryImpl.java
index 4b33699..c9a3dff 100644
--- a/shell/ssh/src/main/java/org/apache/karaf/shell/ssh/ShellFactoryImpl.java
+++ b/shell/ssh/src/main/java/org/apache/karaf/shell/ssh/ShellFactoryImpl.java
@@ -143,6 +143,15 @@ public class ShellFactoryImpl implements Factory<Command> {
                         console.run();
                     } catch (Exception e) {
                         LOGGER.warn("Unable to start shell", e);
+                        //close the session to notify the ssh client if 
something wrong
+                        //during starting shell
+                        try {
+                            out.write(("unable to start shell because " + 
e.getMessage() + "\n").getBytes());
+                            out.flush();
+                        } catch (IOException e1) {
+                            LOGGER.warn("Unable to send back error message", 
e1);
+                        }
+                        ShellImpl.this.session.close(true);
                     }
                 }
             }.start();

Reply via email to