@Condition applied on wrong source parameter while mapping
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Anfängerfreundlichkeit
- 52/100
Rechercherichtung
Beginne mit der im Bericht verlinkten issue-4037-Reproduktion und untersuche den generierten Mapper für das Mapping mit zwei Quellparametern. Verfolge, wie @Condition ausgewählt wird, wenn nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS gilt; als erledigt gilt die Aufgabe, wenn die Bedingung die aus requestBean abgeleitete Quelle für browserId statt slotId verwendet und ein Regressionstest diesen Fall abdeckt.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Expected behavior
@Condition method should be correctly applied on correct source parameters when we are using nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS
Actual behavior
When we have the mapping mapping with 2 source parameters, for eg:
@Mapping(target = "browserId", source = "requestBean.deviceInfo.browserId")
public abstract AudienceProfileRequest map(RequestBean requestBean, String slotId);
If we are mapping some Integer source field from RequestBean to AudienceProfileRequest then the condition is applied on slotId which is not expected. Following is the snippet of the generated code:
Integer browserId = requestBeanDeviceInfoBrowserId( requestBean );
if ( prechecksSupport.isNotBlank( slotId ) ) {
audienceProfileRequest.browserId( browserId );
}
Steps to reproduce the problem
https://github.com/altaiezior/mapstruct-issues/tree/master/issue-4037
MapStruct Version
MapStruct 1.5.5
- Vorherrschende Sprache
- Java
- Sterne
- 7.7k
- Forks
- 1.1k
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beitragsleitfaden
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus mapstruct/mapstruct
-
bug test
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 48/100
-
bug
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 68/100
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 68/100
-
bug JSpecify
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 72/100
Alle Issues in mapstruct/mapstruct
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
elastic/gradle-plugins#157 ·
-
enhancement Tools
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 75/100
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 70/100
apache/rocketmq-dashboard#5008 ·
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
-
DETECT_PARAMETER_NAMES=false silently disables @ConstructorProperties-based Creator detection too Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 70/100
FasterXML/jackson-databind#6229 ·