Andy Le created AVRO-2775: ----------------------------- Summary: JacksonUtils: exception when calling toJsonNode() Key: AVRO-2775 URL: https://issues.apache.org/jira/browse/AVRO-2775 Project: Apache Avro Issue Type: Bug Components: java Affects Versions: 1.9.2 Reporter: Andy Le
I've got a simple test as followed {code:java} public class TestJacksonUtils { public static class Age{ public int value = 9; } @Test public void testToJson(){ Map<String, Object> kv = new HashMap<>(); kv.put("age", 9); JsonNode node1 = JacksonUtils.toJsonNode(kv); // -> This is OK Object obj = new Age(); JsonNode node2 = JacksonUtils.toJsonNode(obj); // -> This will trigger an exception } } {code} When I ran the test: {noformat} org.apache.avro.AvroRuntimeException: Unknown datum class: class org.apache.avro.util.internal.TestJacksonUtils$Age at org.apache.avro.util.internal.JacksonUtils.toJson(JacksonUtils.java:87) at org.apache.avro.util.internal.JacksonUtils.toJsonNode(JacksonUtils.java:48) at org.apache.avro.util.internal.TestJacksonUtils.testToJson(TestJacksonUtils.java:20) {noformat} I've read the code & tests for JacksonUtils. Instead of raising exceptions at [line #87|https://github.com/apache/avro/blob/master/lang/java/avro/src/main/java/org/apache/avro/util/internal/JacksonUtils.java#L87], I see we can auto convert objects into maps, every thing's gonna fine. My question is: - Is raising exception acceptable? - Any other way to have `toJsonNode` for general objects? -- This message was sent by Atlassian Jira (v8.3.4#803005)