Bill Lee created FLINK-8544:
-------------------------------
Summary: JSONKeyValueDeserializationSchema throws NPE when message key is null
Key: FLINK-8544
URL:
https://issues.apache.org/jira/browse/FLINK-8544 Project: Flink
Issue Type: Bug
Components: Kafka Connector
Affects Versions: 1.4.0
Reporter: Bill Lee
JSONKeyValueDeserializationSchema call Jaskon to deserialize the message key without validation.
If a message with key == null is read, flink throws an NPE.
{code:java}
@Override
public ObjectNode deserialize(byte[] messageKey, byte[] message, String topic, int partition, long offset) throws IOException {
if (mapper == null) {
mapper = new ObjectMapper();
}
ObjectNode node = mapper.createObjectNode();
node.set("key", mapper.readValue(messageKey, JsonNode.class)); // messageKey is not validate against null.
node.set("value", mapper.readValue(message, JsonNode.class));
{code}
The fix is very straightforward.
{code:java}
if (messageKey == null) {
node.set("key", null)
} else {
node.set("key", mapper.readValue(messageKey, JsonNode.class));
}
{code}
If it is appreciated, I would send a pull request.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)