I have a Map<String,Object> to be converted to a ConcurrentMap<String,Object>
Map<String,Object> testMap = new HashMap<String,Object>();
testMap.put("test", null); //This null causing issues in conversion
testMap.put("test2","123");
testMap.put("test3",234);
ConcurrentMap<String,Object> concMap = new ConcurrentHashMap<>(testMap);
I get a null pointer exception. If I copy to a new HashMap<String,Object>
Map<String,Object> testMap = new HashMap<String,Object>();
testMap.put("test", null);
testMap.put("test2","123");
testMap.put("test3",234);
Map<String,Object> concMap = new HashMap<>(testMap);
I don't get any errors. Is there a safe way to a Map<String,Object> to a ConcurrentMap<String,Object> without the NullPointerException
If you look into the source code of ConcurrentHashMap you will see, it doesn't allow null key or value -
java.util.concurrent.ConcurrentHashMap#putVal
/** Implementation for put and putIfAbsent */
final V putVal(K key, V value, boolean onlyIfAbsent) {
if (key == null || value == null) throw new NullPointerException();
It's in the documentation for ConcurrentHashMap:
Like Hashtable but unlike HashMap, this class does not allow null to be used as a key or value.
As for other ConcurrentMaps, the only other implementation ConcurrentSkipListMap, does not allow null either.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With