Compilation Error - Duplicate Methods generated
Expected behavior
No duplicated methods.

leads to following error: method beanListToBeanDTOList(java.util.List<Bean>) is already defined

Actual behavior
public class BeanMapperImpl implements BeanMapper { @Override public BeanDTO map(Bean source, BeanDTO target) { if ( source == null ) { return target; } if ( target.getBeans() != null ) { List<BeanDTO> list = beanListToBeanDTOList( source.getBeans() ); if ( list != null ) { target.getBeans().clear(); target.getBeans().addAll( list ); } else { target.setBeans( null ); } } else { List<BeanDTO> list = beanListToBeanDTOList( source.getBeans() ); if ( list != null ) { target.setBeans( list ); } } return target; } protected List<BeanDTO> beanListToBeanDTOList(List<Bean> list) { if ( list == null ) { return null; } List<BeanDTO> list1 = new ArrayList<BeanDTO>( list.size() ); for ( Bean bean : list ) { list1.add( beanToBeanDTO( bean ) ); } return list1; } protected BeanDTO beanToBeanDTO(Bean bean) { if ( bean == null ) { return null; } BeanDTO beanDTO = new BeanDTO(); beanDTO.setBeans( beanListToBeanDTOList( bean.getBeans() ) ); return beanDTO; } protected List<BeanDTO> beanListToBeanDTOList(List<Bean> list) { if ( list == null ) { return null; } List<BeanDTO> list1 = new ArrayList<BeanDTO>( list.size() ); for ( Bean bean : list ) { list1.add( beanToBeanDTO( bean ) ); } return list1; } }
Steps to reproduce the problem
SourceFiles to reproduce:
public class Bean { private List<Bean> beans; public List<Bean> getBeans() { return beans; } public void setBeans(List<Bean> beans) { this.beans = beans; } }
public class BeanDTO { private List<BeanDTO> beans; public List<BeanDTO> getBeans() { return beans; } public void setBeans(List<BeanDTO> beans) { this.beans = beans; } }
@Mapper public interface BeanMapper { BeanMapper INSTANCE = Mappers.getMapper(BeanMapper.class); @Mapping(source = "beans", target = "beans") BeanDTO map(Bean source, @MappingTarget BeanDTO target); }
MapStruct Version
1.5.5.Final