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);