diff options
author | Shawn Pearce <sop@google.com> | 2013-08-31 18:14:56 -0700 |
---|---|---|
committer | Shawn Pearce <sop@google.com> | 2013-08-31 18:14:56 -0700 |
commit | b39e4d6a6002bdd66ec72a8553a43830590399f7 (patch) | |
tree | 646d1866d5a03376a150e8a867b0fbe432d72ab8 | |
parent | 6a25f558dcde03c0ad13c196cce71b1a6bad8889 (diff) | |
parent | bae9e58ddd68992473307787fb01e022f5969fee (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.java | 8 |
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())); + } } }; } |