|
24 | 24 | import java.nio.channels.SelectableChannel;
|
25 | 25 | import java.nio.channels.SocketChannel;
|
26 | 26 | import java.time.Duration;
|
27 |
| -import java.util.HashMap; |
28 | 27 | import java.util.List;
|
29 | 28 | import java.util.Map;
|
| 29 | +import java.util.Objects; |
30 | 30 | import java.util.concurrent.ConcurrentHashMap;
|
31 | 31 | import java.util.logging.Level;
|
32 | 32 | import java.util.logging.Logger;
|
@@ -194,7 +194,7 @@ public void sendRequest(Message request, Object context, Message.Builder respons
|
194 | 194 | Duration timeout) {
|
195 | 195 | // Pack it as a no-timeout request and send it!
|
196 | 196 | final REQID rid = REQID.generate();
|
197 |
| - contextMap.put(rid, context); |
| 197 | + contextMap.put(rid, Objects.nonNull(context) ? context: new Object()); |
198 | 198 | responseMessageMap.put(rid, responseBuilder);
|
199 | 199 |
|
200 | 200 | // Add timeout for this request if necessary
|
@@ -403,15 +403,15 @@ public void forceFlushWithBestEffort() {
|
403 | 403 | // Following protected methods are just used for testing
|
404 | 404 | /////////////////////////////////////////////////////////
|
405 | 405 | protected Map<String, Message.Builder> getMessageMap() {
|
406 |
| - return new HashMap<String, Message.Builder>(messageMap); |
| 406 | + return new ConcurrentHashMap<String, Message.Builder>(messageMap); |
407 | 407 | }
|
408 | 408 |
|
409 | 409 | protected Map<REQID, Message.Builder> getResponseMessageMap() {
|
410 |
| - return new HashMap<REQID, Message.Builder>(responseMessageMap); |
| 410 | + return new ConcurrentHashMap<REQID, Message.Builder>(responseMessageMap); |
411 | 411 | }
|
412 | 412 |
|
413 | 413 | protected Map<REQID, Object> getContextMap() {
|
414 |
| - return new HashMap<REQID, Object>(contextMap); |
| 414 | + return new ConcurrentHashMap<>(contextMap); |
415 | 415 | }
|
416 | 416 |
|
417 | 417 | protected SocketChannelHelper getSocketChannelHelper() {
|
|
0 commit comments