Bart Vercammen created KAFKA-5717: ------------------------------------- Summary: [streams] 'null' values in state stores Key: KAFKA-5717 URL: https://issues.apache.org/jira/browse/KAFKA-5717 Project: Kafka Issue Type: Bug Components: streams Affects Versions: 0.11.0.0, 0.10.2.1 Reporter: Bart Vercammen
When restoring the state on an in-memory KeyValue store (at startup of the Kafka Streams application), the _deleted_ values are put in the store as _key_ with _value_ {{null}} instead of being removed from the store. (this happens when the underlying kafka topic segment did not get compacted yet) After some digging I came across this in {{InMemoryKeyValueStore<K, V>}}: {code} public synchronized void put(K key, V value) { this.map.put(key, value); } {code} I would assume this implementation misses the check on {{value}} being {{null}} to *delete* the entry instead of just storing it. In the RocksDB implementation it is done correctly: {code} if (rawValue == null) { try { db.delete(wOptions, rawKey); {code} -- This message was sent by Atlassian JIRA (v6.4.14#64029)