[
https://issues.apache.org/jira/browse/DRILL-8431?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17721274#comment-17721274
]
James Turton commented on DRILL-8431:
-------------------------------------
I did read that ObjectReader and ObjectWriter are already immutable and thread
safe.
> add immutable wrapper for ObjectMapper
> --------------------------------------
>
> Key: DRILL-8431
> URL: https://issues.apache.org/jira/browse/DRILL-8431
> Project: Apache Drill
> Issue Type: Task
> Components: Server
> Reporter: PJ Fanning
> Priority: Major
>
> The Jackson based code in Drill is quite complicated and passes around
> ObjectMapper instances in a way that is difficult to maintain.
> We need to balance the objective of trying to reuse ObjectMapper instances
> (because they are fairly expensive to create) but avoid the risk that code
> modifies an ObjectMapper instance (extra config or extra modules added) in a
> way that affects other code that uses the ObjectMapper instance.
> Jackson 3 (which is under development but a long way off) moves towards
> making ObjectMappers immutable. Mapper Builders are used instead to configure
> mappers. Some of these API changes are already backported to Jackson 2.
> My suggestion in this Jira is that we create a new Drill class called
> ImmutableObjectMapper and this exposes API methods for reading and writing
> JSON but that hides methods for configuring the mapper. We can wrap some of
> our ObjectMappers. It will probably take a few iterations to get everything
> switched over but we can start with the low hanging fruit.
> This class would allow the Java compiler to check for any untidy attempts to
> modify an ObjectMapper that was created elsewhere.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)