diff --git a/processor/src/main/java/org/mapstruct/ap/model/PropertyMapping.java b/processor/src/main/java/org/mapstruct/ap/model/PropertyMapping.java index 7646e6146..74151ee11 100644 --- a/processor/src/main/java/org/mapstruct/ap/model/PropertyMapping.java +++ b/processor/src/main/java/org/mapstruct/ap/model/PropertyMapping.java @@ -170,7 +170,13 @@ public class PropertyMapping extends ModelElement { } else if ( targetType.isArrayType() && sourceType.isArrayType() && assignment.getType() == DIRECT ) { Type arrayType = ctx.getTypeFactory().getType( Arrays.class ); - assignment = new ArrayCopyWrapper( assignment, targetPropertyName, arrayType, targetType ); + assignment = new ArrayCopyWrapper( + assignment, + targetPropertyName, + arrayType, + targetType, + existingVariableNames + ); assignment = new NullCheckWrapper( assignment ); } else { diff --git a/processor/src/main/java/org/mapstruct/ap/model/assignment/ArrayCopyWrapper.java b/processor/src/main/java/org/mapstruct/ap/model/assignment/ArrayCopyWrapper.java index ab9d70746..7f6f790f1 100644 --- a/processor/src/main/java/org/mapstruct/ap/model/assignment/ArrayCopyWrapper.java +++ b/processor/src/main/java/org/mapstruct/ap/model/assignment/ArrayCopyWrapper.java @@ -18,11 +18,13 @@ */ package org.mapstruct.ap.model.assignment; +import java.util.Collection; import java.util.Collections; import java.util.HashSet; import java.util.Set; import org.mapstruct.ap.model.common.Type; +import org.mapstruct.ap.util.Strings; import static org.mapstruct.ap.util.Strings.decapitalize; import static org.mapstruct.ap.util.Strings.getSaveVariableName; @@ -38,9 +40,9 @@ public class ArrayCopyWrapper extends AssignmentWrapper { private final Type targetType; public ArrayCopyWrapper(Assignment decoratedAssignment, String targetPropertyName, Type arraysType, - Type targetType) { + Type targetType, Collection existingVariableNames ) { super( decoratedAssignment ); - this.targetPropertyName = targetPropertyName; + this.targetPropertyName = Strings.getSaveVariableName( targetPropertyName, existingVariableNames ); this.arraysType = arraysType; this.targetType = targetType; }