[
https://issues.apache.org/jira/browse/AVRO-4042?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Andrew Craig updated AVRO-4042:
-------------------------------
Description:
Currently, calling `JacksonUtils.toJsonNode(obj)`,
`JacksonUtils.objectToMap(obj)` or `SchemaBuilder.toJsonNode(obj)` recreate at
least one new instance of Jackson ObjectMapper each time.
ObjectMapper is an expensive object to create, but is thread-safe. We can see
in various other locations within Avro that we reuse the same object, and avoid
recreation.
We can perform the same reuse here - and only create the ObjectMapper once.
was:
Currently, calling `JacksonUtils.toJsonNode(obj)`,
`JacksonUtils.objectToMap(obj)` or `SchemaBuilder.toJsonNode(obj)` recreate at
least one new instance of Jackson ObjectMapper each time.
ObjectMapper is an expensive object to create, but is immutable and
thread-safe. We can see in various other locations within Avro that we reuse
the same object, and avoid recreation.
We can perform the same reuse here - and only create the ObjectMapper once.
> Reuse ObjectMapper in SchemaBuilder & JacksonUtils
> --------------------------------------------------
>
> Key: AVRO-4042
> URL: https://issues.apache.org/jira/browse/AVRO-4042
> Project: Apache Avro
> Issue Type: Improvement
> Components: java
> Affects Versions: 1.11.3
> Reporter: Andrew Craig
> Priority: Minor
> Labels: pull-request-available
> Time Spent: 10m
> Remaining Estimate: 0h
>
> Currently, calling `JacksonUtils.toJsonNode(obj)`,
> `JacksonUtils.objectToMap(obj)` or `SchemaBuilder.toJsonNode(obj)` recreate
> at least one new instance of Jackson ObjectMapper each time.
> ObjectMapper is an expensive object to create, but is thread-safe. We can see
> in various other locations within Avro that we reuse the same object, and
> avoid recreation.
> We can perform the same reuse here - and only create the ObjectMapper once.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)