Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
1.4.0
Description
JSONKeyValueDeserializationSchema call Jaskon to deserialize the message key without validation.
If a message with key == null is read, flink throws an NPE.
@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));
The fix is very straightforward.
if (messageKey == null) { node.set("key", null) } else { node.set("key", mapper.readValue(messageKey, JsonNode.class)); }
If it is appreciated, I would send a pull request.
Attachments
Issue Links
- links to