Most methods in the org.infinispan.atomic.FineGrainedAtomicHashMapProxy<K, V> implementation seem to ignore the use case of removing keys from the map.
keySet(), values(), entrySet(), size(), isEmpty()
all ignore the fact that values in the uncommitted map might have been removed in the current transaction, or have intersections with existing keys.
Note that failing to consider intersections has it return the wrong entries as committed values overwrite the in-flight values.
Methods like containsKey don't check if the matched key is in fact stored in the DeltaAwareCacheEntry as a deleted entry.