Program: 165130
Project: 165130
Buggy source:
@SuppressWarnings("String_Node_Str") private Tuple2<Map<ConstructorParameter,Getter<S,?>>,FieldMapper<S,T>[]> constructorInjections(){
  final Map<ConstructorParameter,Getter<S,?>> injections=new HashMap<ConstructorParameter,Getter<S,?>>();
  final List<FieldMapper<S,T>> fieldMappers=new ArrayList<FieldMapper<S,T>>();
  propertyMappingsBuilder.forEachConstructorProperties(new ForEachCallBack<PropertyMapping<T,?,K,FieldMapperColumnDefinition<K,S>>>(){
    @SuppressWarnings("String_Node_Str") @Override public void handle(    PropertyMapping<T,?,K,FieldMapperColumnDefinition<K,S>> t){
      PropertyMeta<T,?> pm=t.getPropertyMeta();
      ConstructorPropertyMeta<T,?> cProp=(ConstructorPropertyMeta<T,?>)pm;
      ConstructorParameter constructorParameter=cProp.getConstructorParameter();
      injections.put(constructorParameter,getterFor(t,constructorParameter.getResolvedType()));
    }
  }
);
  final Map<ConstructorPropertyMeta<T,?>,AbstractFieldMapperMapperBuilder<S,?,K>> builderToInject=new HashMap<ConstructorPropertyMeta<T,?>,AbstractFieldMapperMapperBuilder<S,?,K>>();
  propertyMappingsBuilder.forEachSubProperties(new ForEachCallBack<PropertyMapping<T,?,K,FieldMapperColumnDefinition<K,S>>>(){
    @SuppressWarnings("String_Node_Str") @Override public void handle(    PropertyMapping<T,?,K,FieldMapperColumnDefinition<K,S>> t){
      PropertyMeta<T,?> pm=t.getPropertyMeta();
      SubPropertyMeta<T,?> subProp=(SubPropertyMeta<T,?>)pm;
      PropertyMeta<T,?> propOwner=subProp.getOwnerProperty();
      if (propOwner.isConstructorProperty()) {
        AbstractFieldMapperMapperBuilder<S,?,K> builder=builderToInject.get(propOwner);
        if (builder == null) {
          builder=newSubBuilder(propOwner.getType(),propOwner.getClassMeta());
          builderToInject.put((ConstructorPropertyMeta<T,?>)propOwner,builder);
        }
        addPropertyBuilder(t,subProp,builder);
      }
    }
    @SuppressWarnings("String_Node_Str") private <P>void addPropertyBuilder(    PropertyMapping<T,?,K,FieldMapperColumnDefinition<K,S>> t,    SubPropertyMeta<T,?> subProp,    AbstractFieldMapperMapperBuilder<S,?,K> builder){
      ((AbstractFieldMapperMapperBuilder<S,P,K>)builder).addMapping(t.getColumnKey(),((SubPropertyMeta<T,P>)subProp).getSubProperty());
    }
  }
);
  for (  Entry<ConstructorPropertyMeta<T,?>,AbstractFieldMapperMapperBuilder<S,?,K>> e : builderToInject.entrySet()) {
    addConstructorMapper(injections,fieldMappers,e);
  }
  return new Tuple2<Map<ConstructorParameter,Getter<S,?>>,FieldMapper<S,T>[]>(injections,fieldMappers.toArray(new FieldMapper[0]));
}

Fixed version (ground truth):
@SuppressWarnings("String_Node_Str") private Tuple2<Map<ConstructorParameter,Getter<S,?>>,FieldMapper<S,T>[]> constructorInjections(){
  final Map<ConstructorParameter,Getter<S,?>> injections=new HashMap<ConstructorParameter,Getter<S,?>>();
  final List<FieldMapper<S,T>> fieldMappers=new ArrayList<FieldMapper<S,T>>();
  propertyMappingsBuilder.forEachConstructorProperties(new ForEachCallBack<PropertyMapping<T,?,K,FieldMapperColumnDefinition<K,S>>>(){
    @SuppressWarnings("String_Node_Str") @Override public void handle(    PropertyMapping<T,?,K,FieldMapperColumnDefinition<K,S>> t){
      PropertyMeta<T,?> pm=t.getPropertyMeta();
      ConstructorPropertyMeta<T,?> cProp=(ConstructorPropertyMeta<T,?>)pm;
      ConstructorParameter constructorParameter=cProp.getConstructorParameter();
      injections.put(constructorParameter,getterFor(t,constructorParameter.getResolvedType()));
    }
  }
);
  final Map<ConstructorPropertyMeta<T,?>,AbstractFieldMapperMapperBuilder<S,?,K>> builderToInject=new HashMap<ConstructorPropertyMeta<T,?>,AbstractFieldMapperMapperBuilder<S,?,K>>();
  propertyMappingsBuilder.forEachSubProperties(new ForEachCallBack<PropertyMapping<T,?,K,FieldMapperColumnDefinition<K,S>>>(){
    @SuppressWarnings("String_Node_Str") @Override public void handle(    PropertyMapping<T,?,K,FieldMapperColumnDefinition<K,S>> t){
      PropertyMeta<T,?> pm=t.getPropertyMeta();
      SubPropertyMeta<T,?> subProp=(SubPropertyMeta<T,?>)pm;
      PropertyMeta<T,?> propOwner=subProp.getOwnerProperty();
      if (propOwner.isConstructorProperty()) {
        AbstractFieldMapperMapperBuilder<S,?,K> builder=builderToInject.get(propOwner);
        if (builder == null) {
          builder=newSubBuilder(propOwner.getType(),propOwner.getClassMeta());
          builderToInject.put((ConstructorPropertyMeta<T,?>)propOwner,builder);
        }
        addPropertyBuilder(t,subProp,builder);
      }
    }
    @SuppressWarnings("String_Node_Str") private <P>void addPropertyBuilder(    PropertyMapping<T,?,K,FieldMapperColumnDefinition<K,S>> t,    SubPropertyMeta<T,?> subProp,    AbstractFieldMapperMapperBuilder<S,?,K> builder){
      ((AbstractFieldMapperMapperBuilder<S,P,K>)builder).addMapping(t.getColumnKey(),t.getColumnDefinition(),((SubPropertyMeta<T,P>)subProp).getSubProperty());
    }
  }
);
  for (  Entry<ConstructorPropertyMeta<T,?>,AbstractFieldMapperMapperBuilder<S,?,K>> e : builderToInject.entrySet()) {
    addConstructorMapper(injections,fieldMappers,e);
  }
  return new Tuple2<Map<ConstructorParameter,Getter<S,?>>,FieldMapper<S,T>[]>(injections,fieldMappers.toArray(new FieldMapper[0]));
}