NullPointerException with ConcurrentHashMap

java.lang.NullPointerException: Cannot invoke method on null key/value in ConcurrentHashMap

Quick Answer

ConcurrentHashMap does not allow null keys or values, unlike HashMap. Check for null before inserting or use HashMap if null is needed.

Why This Happens

ConcurrentHashMap prohibits null keys and null values because null is ambiguous in concurrent context: get() returning null could mean the key is absent or the value is null. HashMap allows null but ConcurrentHashMap throws NullPointerException.

The Problem

ConcurrentHashMap<String, String> map = new ConcurrentHashMap<>();
map.put("key", null); // NullPointerException: null value not allowed

The Fix

ConcurrentHashMap<String, String> map = new ConcurrentHashMap<>();
String value = getValue();
if (value != null) {
    map.put("key", value);
}
// Or use Optional:
map.put("key", Optional.ofNullable(getValue()).orElse("default"));

Step-by-Step Fix

  1. 1

    Identify the null insertion

    Find the put() or putIfAbsent() call that is inserting a null key or value.

  2. 2

    Determine if null is valid

    Decide if null is a valid value in your use case or indicates an error.

  3. 3

    Filter nulls or use a sentinel

    Check for null before inserting, use a sentinel value like empty string, or switch to HashMap if concurrency is not needed.

Bugsly catches this automatically

Bugsly's AI analyzes this error pattern in real-time, explains what went wrong in plain English, and suggests the exact fix — before your users even report it.

Try Bugsly free