#2436 Apply defaultValue/defaultExpression when a source parameter is null#4014
Open
dlwldnjs1009 wants to merge 1 commit intomapstruct:mainfrom
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
When a source parameter itself is
nullin a multi-source mapping, or in a single-source mapping withRETURN_DEFAULT, the generated code now appliesdefaultValue/defaultExpressioninstead of skipping those assignments.The root cause was that the parameter-level presence checks in
BeanMappingMethod.ftlhad no fallback branch. If the source parameter wasnull, the whole block was skipped, including any configured defaults.This change adds fallback handling for the parameter-level presence check branches in
BeanMappingMethod.ftl, and addsisBuiltInPresenceCheckByParameter()inBeanMappingMethod.javaso that custom@SourceParameterConditionmethods keep their existing behavior.The
_913fixtures are updated as well. Only thecreatepath changes here;update/updateWithReturnstay unchanged because they are guarded byexistingInstanceMapping.Tests cover:
nullRETURN_DEFAULTRETURN_DEFAULT@SourceParameterConditiontrue/false behaviorCloses #2436