diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2017-01-09 10:48:44 +0100 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2017-01-09 10:48:44 +0100 |
commit | ef63ebdf34df4b97d8cc54afedd32c55a3d9fabf (patch) | |
tree | 71cd3fa3a69f1dac57fe11db4ae633c268b589eb /vespaclient-core | |
parent | 2baecab9f2a76375d0e974c08836121afca1c23a (diff) |
Fix race condition in the case of concurrent initial send.
Diffstat (limited to 'vespaclient-core')
-rwxr-xr-x | vespaclient-core/src/main/java/com/yahoo/feedapi/SharedSender.java | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/vespaclient-core/src/main/java/com/yahoo/feedapi/SharedSender.java b/vespaclient-core/src/main/java/com/yahoo/feedapi/SharedSender.java index 5601210512e..cb2fe2dee83 100755 --- a/vespaclient-core/src/main/java/com/yahoo/feedapi/SharedSender.java +++ b/vespaclient-core/src/main/java/com/yahoo/feedapi/SharedSender.java @@ -143,8 +143,11 @@ public class SharedSender implements ReplyHandler { OwnerState state = activeOwners.get(owner); if (state == null) { - state = new OwnerState(); - activeOwners.put(owner, state); + OwnerState newState = new OwnerState(); + state = activeOwners.putIfAbsent(owner, newState); + if (state == null) { + state = newState; + } } if (maxPendingPerOwner != -1 && blockingQueue) { state.waitMaxPendingbelow(maxPendingPerOwner); |