One problem is that you can not reliably change settings of `ObjectMapper`, due to concurrency limitations. I don't know if that is what happens here, but you really really should not try that on a multi-threaded system; value may or may not be visible across threads, and could cause inconsistent handling.
However: it is perfectly legal to change setting for `ObjectWriter`s and `ObjectReader`s, using `with(feature)` and `without(feature)` methods: they will not modify state of reader/writer instance, but create newly configured ones. That approach should work.
Note, too, that you can also change the root name being used via these objects with method `withRootName()`, not just whether wrapping is used.
I do not know how easy it would be to do that within an existing framework; many tend to only allow configuring of `ObjectMapper`, and not allow easy use of `ObjectReader` / `ObjectWriter`.
-+ Tatu +-