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 2015/02/26 11:42:18 UTC
[2/4] karaf git commit: [KARAF-3257] Better synchronization in
CommandProcessorImpl
[KARAF-3257] Better synchronization in CommandProcessorImpl
Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/b791d923
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/b791d923
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/b791d923
Branch: refs/heads/karaf-2.x
Commit: b791d923703f70f8f3b7f7501744ffb6bb86237b
Parents: fbf557b
Author: Guillaume Nodet <gn...@gmail.com>
Authored: Mon Oct 27 17:29:24 2014 +0100
Committer: Guillaume Nodet <gn...@gmail.com>
Committed: Thu Feb 26 11:38:57 2015 +0100
----------------------------------------------------------------------
.../felix/gogo/runtime/CommandProcessorImpl.java | 19 ++++++++++++++-----
1 file changed, 14 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/karaf/blob/b791d923/shell/console/src/main/java/org/apache/felix/gogo/runtime/CommandProcessorImpl.java
----------------------------------------------------------------------
diff --git a/shell/console/src/main/java/org/apache/felix/gogo/runtime/CommandProcessorImpl.java b/shell/console/src/main/java/org/apache/felix/gogo/runtime/CommandProcessorImpl.java
index 72cff88..1380bc0 100644
--- a/shell/console/src/main/java/org/apache/felix/gogo/runtime/CommandProcessorImpl.java
+++ b/shell/console/src/main/java/org/apache/felix/gogo/runtime/CommandProcessorImpl.java
@@ -153,11 +153,14 @@ public class CommandProcessorImpl implements CommandProcessor
Object cmd = null;
if (cmdMap != null && !cmdMap.isEmpty())
{
- for (Entry<Object, Integer> e : cmdMap.entrySet())
+ synchronized (cmdMap)
{
- if (cmd == null || e.getValue() > cmdMap.get(cmd))
+ for (Entry<Object, Integer> e : cmdMap.entrySet())
{
- cmd = e.getKey();
+ if (cmd == null || e.getValue() > cmdMap.get(cmd))
+ {
+ cmd = e.getKey();
+ }
}
}
}
@@ -219,7 +222,10 @@ public class CommandProcessorImpl implements CommandProcessor
commands.putIfAbsent(key, new LinkedHashMap<Object, Integer>());
cmdMap = commands.get(key);
}
- cmdMap.put(target, ranking);
+ synchronized (cmdMap)
+ {
+ cmdMap.put(target, ranking);
+ }
}
public void removeCommand(String scope, String function)
@@ -236,7 +242,10 @@ public class CommandProcessorImpl implements CommandProcessor
Map<Object, Integer> cmdMap = commands.get(key);
if (cmdMap != null)
{
- cmdMap.remove(target);
+ synchronized (cmdMap)
+ {
+ cmdMap.remove(target);
+ }
}
}