Author: gnodet
Date: Wed Jun 13 07:16:35 2012
New Revision: 1349660

URL: http://svn.apache.org/viewvc?rev=1349660&view=rev
Log:
[KARAF-1162] A command that can not be loaded breaks the whole completion


Conflicts:

        
shell/console/src/main/java/org/apache/karaf/shell/console/completer/CommandsCompleter.java

Modified:
    
karaf/trunk/shell/console/src/main/java/org/apache/karaf/shell/console/completer/CommandsCompleter.java

Modified: 
karaf/trunk/shell/console/src/main/java/org/apache/karaf/shell/console/completer/CommandsCompleter.java
URL: 
http://svn.apache.org/viewvc/karaf/trunk/shell/console/src/main/java/org/apache/karaf/shell/console/completer/CommandsCompleter.java?rev=1349660&r1=1349659&r2=1349660&view=diff
==============================================================================
--- 
karaf/trunk/shell/console/src/main/java/org/apache/karaf/shell/console/completer/CommandsCompleter.java
 (original)
+++ 
karaf/trunk/shell/console/src/main/java/org/apache/karaf/shell/console/completer/CommandsCompleter.java
 Wed Jun 13 07:16:35 2012
@@ -32,6 +32,8 @@ import org.apache.felix.service.command.
 import org.apache.felix.service.command.Function;
 import org.apache.karaf.shell.console.CommandSessionHolder;
 import org.apache.karaf.shell.console.Completer;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Like the {@link org.apache.karaf.shell.console.completer.CommandsCompleter} 
but does not use OSGi but is
@@ -39,6 +41,8 @@ import org.apache.karaf.shell.console.Co
  */
 public class CommandsCompleter implements Completer {
 
+    private static final Logger LOGGER = 
LoggerFactory.getLogger(CommandsCompleter.class);
+
     private CommandSession session;
     private final List<Completer> completers = new ArrayList<Completer>();
     private final Set<String> commands = new HashSet<String>();
@@ -96,7 +100,11 @@ public class CommandsCompleter implement
                         if (subshell.length() > 1 && command.length() > 
subshell.length()) {
                             command = command.substring(subshell.length() + 1);
                         }
-                        completers.add(new ArgumentCompleter(session, 
(CommandWithAction) function, command));
+                        try {
+                            completers.add(new ArgumentCompleter(session, 
(CommandWithAction) function, command));
+                        } catch (Throwable t) {
+                            LOGGER.debug("Unable to create completers for 
command '" + command + "'", t);
+                        }
                     }
                 }
                 commands.add(command);


Reply via email to