Program: 165077
Project: 165077
Buggy source:
@SuppressWarnings("String_Node_Str") private ConstructorInjections constructorInjections(){
  final Map<Parameter,BiFunction<? super S,? super MappingContext<? super S>,?>> injections=new HashMap<Parameter,BiFunction<? super S,? super MappingContext<? super S>,?>>();
  final List<FieldMapper<S,T>> fieldMappers=new ArrayList<FieldMapper<S,T>>();
  propertyMappingsBuilder.forEachConstructorProperties(new ForEachCallBack<PropertyMapping<T,?,K,FieldMapperColumnDefinition<K>>>(){
    @SuppressWarnings("String_Node_Str") @Override public void handle(    PropertyMapping<T,?,K,FieldMapperColumnDefinition<K>> propertyMapping){
      if (!isTargetForMapperFieldMapper(propertyMapping)) {
        PropertyMeta<T,?> pm=propertyMapping.getPropertyMeta();
        ConstructorPropertyMeta<T,?> cProp=(ConstructorPropertyMeta<T,?>)pm;
        Parameter parameter=cProp.getParameter();
        Getter<? super S,?> getter=fieldMapperFactory.getGetterFromSource(propertyMapping.getColumnKey(),pm.getPropertyType(),propertyMapping.getColumnDefinition(),pm.getPropertyClassMetaSupplier());
        if (NullGetter.isNull(getter)) {
          mapperConfig.mapperBuilderErrorHandler().accessorNotFound("String_Node_Str" + propertyMapping.getColumnKey() + "String_Node_Str"+ propertyMapping.getPropertyMeta().getPropertyType()+ "String_Node_Str"+ propertyMapping.getPropertyMeta().getPath()+ "String_Node_Str"+ ErrorDoc.toUrl("String_Node_Str"));
        }
 else {
          injections.put(parameter,new BiFunctionGetter<S,MappingContext<? super S>,Object>(getter));
        }
        if (!NullSetter.isNull(cProp.getSetter())) {
          fieldMappers.add(fieldMapperFactory.newFieldMapper(propertyMapping,mappingContextFactoryBuilder,mapperConfig.mapperBuilderErrorHandler()));
        }
      }
    }
  }
);
  for (  PropertyPerOwner e : getSubPropertyPerOwner()) {
    if (e.owner.isConstructorProperty()) {
      final List<PropertyMapping<T,?,K,FieldMapperColumnDefinition<K>>> properties=e.propertyMappings;
      final MappingContextFactoryBuilder currentBuilder=getMapperContextFactoryBuilder(e.owner,properties);
      final Mapper<S,?> mapper;
      if (properties.size() == 1 && properties.get(0).getPropertyMeta() instanceof ArrayElementPropertyMeta) {
        mapper=getterPropertyMapper(e.owner,properties.get(0));
      }
 else {
        mapper=subPropertyMapper(e.owner,properties,currentBuilder);
      }
      ConstructorPropertyMeta<T,?> meta=(ConstructorPropertyMeta<T,?>)e.owner;
      injections.put(meta.getParameter(),newMapperGetterAdapter(mapper,currentBuilder));
      fieldMappers.add(newMapperFieldMapper(properties,meta,mapper,currentBuilder));
    }
  }
  return new ConstructorInjections(injections,fieldMappers.toArray(new FieldMapper[0]));
}

Fixed version (ground truth):
@SuppressWarnings("String_Node_Str") private ConstructorInjections constructorInjections(){
  final Map<Parameter,BiFunction<? super S,? super MappingContext<? super S>,?>> injections=new HashMap<Parameter,BiFunction<? super S,? super MappingContext<? super S>,?>>();
  final List<FieldMapper<S,T>> fieldMappers=new ArrayList<FieldMapper<S,T>>();
  propertyMappingsBuilder.forEachConstructorProperties(new ForEachCallBack<PropertyMapping<T,?,K,FieldMapperColumnDefinition<K>>>(){
    @SuppressWarnings("String_Node_Str") @Override public void handle(    PropertyMapping<T,?,K,FieldMapperColumnDefinition<K>> propertyMapping){
      if (!isTargetForMapperFieldMapper(propertyMapping)) {
        PropertyMeta<T,?> pm=propertyMapping.getPropertyMeta();
        ConstructorPropertyMeta<T,?> cProp=(ConstructorPropertyMeta<T,?>)pm;
        Parameter parameter=cProp.getParameter();
        Getter<? super S,?> getter=fieldMapperFactory.getGetterFromSource(propertyMapping.getColumnKey(),pm.getPropertyType(),propertyMapping.getColumnDefinition(),pm.getPropertyClassMetaSupplier());
        if (NullGetter.isNull(getter)) {
          mapperConfig.mapperBuilderErrorHandler().accessorNotFound("String_Node_Str" + propertyMapping.getColumnKey() + "String_Node_Str"+ propertyMapping.getPropertyMeta().getPropertyType()+ "String_Node_Str"+ propertyMapping.getPropertyMeta().getPath()+ "String_Node_Str"+ ErrorDoc.toUrl("String_Node_Str"));
        }
 else {
          injections.put(parameter,new BiFunctionGetter<S,MappingContext<? super S>,Object>(getter));
        }
        if (!NullSetter.isNull(cProp.getSetter())) {
          fieldMappers.add(fieldMapperFactory.newFieldMapper(propertyMapping,mappingContextFactoryBuilder,mapperConfig.mapperBuilderErrorHandler()));
        }
      }
    }
  }
);
  for (  PropertyPerOwner e : getSubPropertyPerOwner()) {
    if (e.owner.isConstructorProperty()) {
      final List<PropertyMapping<T,?,K,FieldMapperColumnDefinition<K>>> properties=e.propertyMappings;
      final MappingContextFactoryBuilder currentBuilder=getMapperContextFactoryBuilder(e.owner,properties);
      final Mapper<S,?> mapper;
      if (properties.size() == 1 && JoinUtils.isArrayElement(properties.get(0).getPropertyMeta())) {
        mapper=getterPropertyMapper(e.owner,properties.get(0));
      }
 else {
        mapper=subPropertyMapper(e.owner,properties,currentBuilder);
      }
      ConstructorPropertyMeta<T,?> meta=(ConstructorPropertyMeta<T,?>)e.owner;
      injections.put(meta.getParameter(),newMapperGetterAdapter(mapper,currentBuilder));
      fieldMappers.add(newMapperFieldMapper(properties,meta,mapper,currentBuilder));
    }
  }
  return new ConstructorInjections(injections,fieldMappers.toArray(new FieldMapper[0]));
}