Fix possible thread safety problem in completer
Project: http://git-wip-us.apache.org/repos/asf/karaf/repo Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/22ece466 Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/22ece466 Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/22ece466 Branch: refs/heads/master Commit: 22ece466b8cb1497076659a078729b1e144cb0e0 Parents: 0c97f00 Author: Guillaume Nodet <gno...@gmail.com> Authored: Thu Jan 8 10:00:05 2015 +0100 Committer: Guillaume Nodet <gno...@gmail.com> Committed: Thu Jan 8 10:01:46 2015 +0100 ---------------------------------------------------------------------- .../command/completers/ConfigurationPropertyCompleter.java | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/karaf/blob/22ece466/config/src/main/java/org/apache/karaf/config/command/completers/ConfigurationPropertyCompleter.java ---------------------------------------------------------------------- diff --git a/config/src/main/java/org/apache/karaf/config/command/completers/ConfigurationPropertyCompleter.java b/config/src/main/java/org/apache/karaf/config/command/completers/ConfigurationPropertyCompleter.java index 2b43fec..78d88a2 100644 --- a/config/src/main/java/org/apache/karaf/config/command/completers/ConfigurationPropertyCompleter.java +++ b/config/src/main/java/org/apache/karaf/config/command/completers/ConfigurationPropertyCompleter.java @@ -47,8 +47,6 @@ import org.osgi.service.cm.ConfigurationAdmin; @Service public class ConfigurationPropertyCompleter implements Completer { - private final StringsCompleter delegate = new StringsCompleter(); - private static final String OPTION = "-p"; private static final String ALIAS = "--pid"; @@ -57,15 +55,15 @@ public class ConfigurationPropertyCompleter implements Completer { @SuppressWarnings("rawtypes") public int complete(final Session session, final CommandLine commandLine, final List<String> candidates) { + StringsCompleter strings = new StringsCompleter(); if (session != null) { String pid = getPid(session, commandLine); Set<String> propertyNames = getPropertyNames(pid); - delegate.getStrings().clear(); if (propertyNames != null && !propertyNames.isEmpty()) { - delegate.getStrings().addAll(propertyNames); + strings.getStrings().addAll(propertyNames); } } - return delegate.complete(session, commandLine, candidates); + return strings.complete(session, commandLine, candidates); } /**