Add ObjectMapper in FunctionCallbackWrapper constructor #562
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
FunctionCallbackWrapper
has aBuilder
object to buildFunctionCallbackWrapper
s. TheBuilder
has a methodwithObjectMapper
to pass in customObjectMapper
s. However, this customObjectMapper
is not used in the constructor ofFunctionCallbackWrapper
, soFunctionCallbackWrapper
always uses the defaultObjectMapper
.This causes problems when using Kotlin data classes as the function types. For serialization/deserialization with Kotlin data classes, the
KotlinModule
should be registered to theObjectMapper
, which requires a customObjectMapper
. The workaround is using records.In this fix, I added the
ObjectMapper
to the constructor ofFunctionCallbackWrapper
. No null-check is required as this constructor is private andBuilder
is the only way to create new instances ofFunctionCallbackWrapper
. Null-check is already done in thebuild
method ofBuilder
. The default value ofObjectMapper
is the same as before, which is also already defined inBuilder
.