Skip to content

Plugin fatal crush in case using static constant in target field of @Mapping annotation #88

@promanovsky

Description

@promanovsky

I have two interfaces

  1. First one with some static constants
public interface CommonNsiMapper {

    String OKATO_CODE = "okato";
    String FULL_NAME_CODE = "fullName";
    String SHORT_NAME_CODE = "shortName";
    String RUSSIAN_NAME_CODE = "russianName";
    String DIFFERENCE_TIME_CODE = "differenceTime";
    String ADDRESS_CODE = "adress";
    String ASSEMBLY_ALGORITHM_CODE = "assemblyAlgorithm";
    String NORMA_LEGAL_DOC = "normaLegalDocument";

    default String mapStringFromAdditionalField(EtpNsiItem item, String code) {
        return item != null && item.getAdditionalFields() != null ? item.getAdditionalFields().get(code) : null;
    }

    default Integer mapIntegerFromAdditionalField(EtpNsiItem content, String code) {
        return StringUtils.isNotEmpty(content.getAdditionalFields().get(code)) ? Integer.getInteger(content.getAdditionalFields().get(code)) : null;
    }
}
  1. Second one is using some constants for target field in Mapping annotations.
@Mapper(unmappedTargetPolicy = ReportingPolicy.IGNORE,
        uses = {BiddingRelationsMapper.class},
        config = BaseNsiMapper.class)
public interface ContractRefusalReasonNsiMapper extends CommonNsiMapper {

    @InheritConfiguration(name = "mapToNsiDto")
    @Mapping(target = "biddingRelation", source = "biddingRelations")
    @Mapping(target = NORMA_LEGAL_DOC, expression = "java(this.mapStringFromAdditionalField(content.getNsiItem(), NORMA_LEGAL_DOC))")
    ContractRefusalReason mapToExport(MasterDataItemContent content);
}

Every time when i open interfaces like 2 - i had a fatal plugin error (file with trace attached) plugin_trace.log

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions