summaryrefslogtreecommitdiffstats
path: root/vespaclient-core
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2017-01-09 10:48:44 +0100
committerHenning Baldersheim <balder@yahoo-inc.com>2017-01-09 10:48:44 +0100
commitef63ebdf34df4b97d8cc54afedd32c55a3d9fabf (patch)
tree71cd3fa3a69f1dac57fe11db4ae633c268b589eb /vespaclient-core
parent2baecab9f2a76375d0e974c08836121afca1c23a (diff)
Fix race condition in the case of concurrent initial send.
Diffstat (limited to 'vespaclient-core')
-rwxr-xr-xvespaclient-core/src/main/java/com/yahoo/feedapi/SharedSender.java7
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);