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 2012/06/13 08:58:54 UTC

svn commit: r1349658 - /karaf/branches/karaf-2.3.x/shell/console/src/main/java/org/apache/karaf/shell/console/completer/CommandsCompleter.java

Author: gnodet
Date: Wed Jun 13 06:58:54 2012
New Revision: 1349658

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

Modified:
    karaf/branches/karaf-2.3.x/shell/console/src/main/java/org/apache/karaf/shell/console/completer/CommandsCompleter.java

Modified: karaf/branches/karaf-2.3.x/shell/console/src/main/java/org/apache/karaf/shell/console/completer/CommandsCompleter.java
URL: http://svn.apache.org/viewvc/karaf/branches/karaf-2.3.x/shell/console/src/main/java/org/apache/karaf/shell/console/completer/CommandsCompleter.java?rev=1349658&r1=1349657&r2=1349658&view=diff
==============================================================================
--- karaf/branches/karaf-2.3.x/shell/console/src/main/java/org/apache/karaf/shell/console/completer/CommandsCompleter.java (original)
+++ karaf/branches/karaf-2.3.x/shell/console/src/main/java/org/apache/karaf/shell/console/completer/CommandsCompleter.java Wed Jun 13 06:58:54 2012
@@ -31,11 +31,12 @@ import org.apache.felix.gogo.runtime.Com
 import org.apache.felix.gogo.runtime.CommandSessionImpl;
 import org.apache.felix.service.command.CommandSession;
 import org.apache.felix.service.command.Function;
-import org.apache.karaf.shell.console.CompletableFunction;
 import org.apache.karaf.shell.console.Completer;
+import org.apache.karaf.shell.console.jline.CommandSessionHolder;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.ServiceReference;
-import org.apache.karaf.shell.console.jline.CommandSessionHolder;
+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
@@ -43,6 +44,8 @@ import org.apache.karaf.shell.console.jl
  */
 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>();
@@ -83,7 +86,11 @@ public class CommandsCompleter implement
                 Function function = (Function) session.get(command);
                 function = unProxy(function);
                 if (function instanceof AbstractCommand) {
-                    completers.add(new ArgumentCompleter(session, (AbstractCommand) function, command));
+                    try {
+                        completers.add(new ArgumentCompleter(session, (AbstractCommand) function, command));
+                    } catch (Throwable t) {
+                        LOGGER.debug("Unable to create completers for command '" + command + "'", t);
+                    }
                 }
                 commands.add(command);
             }