summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorShawn Pearce <sop@google.com>2013-08-31 18:14:56 -0700
committerShawn Pearce <sop@google.com>2013-08-31 18:14:56 -0700
commitb39e4d6a6002bdd66ec72a8553a43830590399f7 (patch)
tree646d1866d5a03376a150e8a867b0fbe432d72ab8
parent6a25f558dcde03c0ad13c196cce71b1a6bad8889 (diff)
parentbae9e58ddd68992473307787fb01e022f5969fee (diff)
Merge branch 'stable-2.6' into stable-2.7v2.7-rc5
* stable-2.6: Fix reenabling of plugins
-rw-r--r--gerrit-sshd/src/main/java/com/google/gerrit/sshd/DispatchCommandProvider.java8
1 files changed, 6 insertions, 2 deletions
diff --git a/gerrit-sshd/src/main/java/com/google/gerrit/sshd/DispatchCommandProvider.java b/gerrit-sshd/src/main/java/com/google/gerrit/sshd/DispatchCommandProvider.java
index e9a31c9285..c7594bc6d1 100644
--- a/gerrit-sshd/src/main/java/com/google/gerrit/sshd/DispatchCommandProvider.java
+++ b/gerrit-sshd/src/main/java/com/google/gerrit/sshd/DispatchCommandProvider.java
@@ -53,13 +53,17 @@ public class DispatchCommandProvider implements Provider<DispatchCommand> {
public RegistrationHandle register(final CommandName name,
final Provider<Command> cmd) {
final ConcurrentMap<String, CommandProvider> m = getMap();
- if (m.putIfAbsent(name.value(), new CommandProvider(cmd, null)) != null) {
+ final CommandProvider commandProvider = new CommandProvider(cmd, null);
+ if (m.putIfAbsent(name.value(), commandProvider) != null) {
throw new IllegalArgumentException(name.value() + " exists");
}
return new RegistrationHandle() {
@Override
public void remove() {
- m.remove(name.value(), cmd);
+ if (!m.remove(name.value(), commandProvider)) {
+ throw new IllegalStateException(String.format(
+ "can not unregister command: %s", name.value()));
+ }
}
};
}