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)