Program: 39675
Project: 39675
Buggy source:
@Nonnull private static TypeSpec buildNativeComponent(@Nonnull final ComponentDescriptor descriptor){
  final TypeSpec.Builder builder=TypeSpec.classBuilder("String_Node_Str");
  builder.addModifiers(Modifier.FINAL);
  builder.addModifiers(Modifier.STATIC);
  builder.addModifiers(Modifier.PRIVATE);
  final TypeName superType=ParameterizedTypeName.get(REACT_NATIVE_ADAPTER_COMPONENT_CLASSNAME,ClassName.get(descriptor.getPropsType().asType()),ClassName.get(descriptor.getStateType().asType()),ClassName.get(descriptor.getContextType().asType()),descriptor.getComponentType());
  builder.superclass(superType);
  builder.addTypeVariables(ProcessorUtil.getTypeArgumentsAsNames(descriptor.getDeclaredType()));
  if (!descriptor.getLifecycleMethods().isEmpty()) {
    builder.addSuperinterface(ClassName.bestGuess("String_Node_Str"));
  }
{
    final ParameterSpec.Builder props=ParameterSpec.builder(ClassName.get(descriptor.getPropsType()),"String_Node_Str",Modifier.FINAL).addAnnotation(NULLABLE_CLASSNAME);
    final ParameterSpec.Builder context=ParameterSpec.builder(ClassName.get(descriptor.getContextType()),"String_Node_Str",Modifier.FINAL).addAnnotation(NULLABLE_CLASSNAME);
    final MethodSpec.Builder method=MethodSpec.constructorBuilder().addParameter(props.build()).addParameter(context.build());
    method.addStatement("String_Node_Str");
    builder.addMethod(method.build());
  }
{
    final MethodSpec.Builder method=MethodSpec.methodBuilder("String_Node_Str").addAnnotation(Override.class).addModifiers(Modifier.PROTECTED).returns(ClassName.get(descriptor.getElement()));
    if (descriptor.needsInjection()) {
      method.addStatement("String_Node_Str");
    }
 else {
      method.addStatement("String_Node_Str",descriptor.getClassNameToConstruct());
    }
    builder.addMethod(method.build());
  }
{
    for (    final MethodDescriptor lifecycleMethod : descriptor.getLifecycleMethods()) {
      final String methodName=lifecycleMethod.getMethod().getSimpleName().toString();
      final MethodSpec.Builder method=MethodSpec.methodBuilder(methodName).addModifiers(Modifier.PUBLIC).addAnnotation(Override.class).returns(ClassName.get(lifecycleMethod.getMethodType().getReturnType()));
      ProcessorUtil.copyTypeParameters(lifecycleMethod.getMethodType(),method);
      final StringJoiner params=new StringJoiner("String_Node_Str");
      final List<? extends VariableElement> sourceParameters=lifecycleMethod.getMethod().getParameters();
      final List<? extends TypeMirror> sourceParameterTypes=lifecycleMethod.getMethodType().getParameterTypes();
      final int parameterCount=sourceParameters.size();
      for (int i=0; i < parameterCount; i++) {
        final VariableElement parameter=sourceParameters.get(i);
        final TypeMirror parameterType=sourceParameterTypes.get(i);
        final String parameterName=parameter.getSimpleName().toString();
        final ParameterSpec.Builder parameterSpec=ParameterSpec.builder(TypeName.get(parameterType),parameterName,Modifier.FINAL).addAnnotation(NONNULL_CLASSNAME);
        method.addParameter(parameterSpec.build());
        params.add(parameterName);
      }
      final StringBuilder sb=new StringBuilder();
      if (TypeKind.VOID != lifecycleMethod.getMethodType().getReturnType().getKind()) {
        sb.append("String_Node_Str");
      }
      sb.append("String_Node_Str");
      sb.append(Character.toUpperCase(methodName.charAt(0)));
      sb.append(methodName.substring(1));
      sb.append("String_Node_Str");
      sb.append(params.toString());
      sb.append("String_Node_Str");
      method.addStatement(sb.toString());
      builder.addMethod(method.build());
    }
  }
  return builder.build();
}

Fixed version (ground truth):
@Nonnull private static TypeSpec buildNativeComponent(@Nonnull final ComponentDescriptor descriptor){
  final TypeSpec.Builder builder=TypeSpec.classBuilder("String_Node_Str");
  builder.addModifiers(Modifier.FINAL);
  builder.addModifiers(Modifier.STATIC);
  builder.addModifiers(Modifier.PRIVATE);
  final TypeName superType=ParameterizedTypeName.get(REACT_NATIVE_ADAPTER_COMPONENT_CLASSNAME,ClassName.get(descriptor.getPropsType().asType()),ClassName.get(descriptor.getStateType().asType()),ClassName.get(descriptor.getContextType().asType()),descriptor.getComponentType());
  builder.superclass(superType);
  builder.addTypeVariables(ProcessorUtil.getTypeArgumentsAsNames(descriptor.getDeclaredType()));
  if (!descriptor.getLifecycleMethods().isEmpty()) {
    builder.addSuperinterface(ClassName.bestGuess("String_Node_Str"));
  }
{
    final ParameterSpec.Builder props=ParameterSpec.builder(ClassName.get(descriptor.getPropsType()),"String_Node_Str",Modifier.FINAL).addAnnotation(NULLABLE_CLASSNAME);
    final ParameterSpec.Builder context=ParameterSpec.builder(ClassName.get(descriptor.getContextType()),"String_Node_Str",Modifier.FINAL).addAnnotation(NULLABLE_CLASSNAME);
    final MethodSpec.Builder method=MethodSpec.constructorBuilder().addParameter(props.build()).addParameter(context.build());
    method.addStatement("String_Node_Str");
    builder.addMethod(method.build());
  }
{
    final MethodSpec.Builder method=MethodSpec.methodBuilder("String_Node_Str").addAnnotation(Override.class).addModifiers(Modifier.PROTECTED).returns(descriptor.getComponentType());
    if (!descriptor.getDeclaredType().getTypeArguments().isEmpty()) {
      method.addAnnotation(AnnotationSpec.builder(SuppressWarnings.class).addMember("String_Node_Str","String_Node_Str","String_Node_Str").build());
    }
    if (descriptor.needsInjection()) {
      method.addStatement("String_Node_Str");
    }
 else {
      method.addStatement("String_Node_Str",descriptor.getClassNameToConstruct());
    }
    builder.addMethod(method.build());
  }
{
    for (    final MethodDescriptor lifecycleMethod : descriptor.getLifecycleMethods()) {
      final String methodName=lifecycleMethod.getMethod().getSimpleName().toString();
      final MethodSpec.Builder method=MethodSpec.methodBuilder(methodName).addModifiers(Modifier.PUBLIC).addAnnotation(Override.class).returns(ClassName.get(lifecycleMethod.getMethodType().getReturnType()));
      ProcessorUtil.copyTypeParameters(lifecycleMethod.getMethodType(),method);
      final StringJoiner params=new StringJoiner("String_Node_Str");
      final List<? extends VariableElement> sourceParameters=lifecycleMethod.getMethod().getParameters();
      final List<? extends TypeMirror> sourceParameterTypes=lifecycleMethod.getMethodType().getParameterTypes();
      final int parameterCount=sourceParameters.size();
      for (int i=0; i < parameterCount; i++) {
        final VariableElement parameter=sourceParameters.get(i);
        final TypeMirror parameterType=sourceParameterTypes.get(i);
        final String parameterName=parameter.getSimpleName().toString();
        final ParameterSpec.Builder parameterSpec=ParameterSpec.builder(TypeName.get(parameterType),parameterName,Modifier.FINAL).addAnnotation(NONNULL_CLASSNAME);
        method.addParameter(parameterSpec.build());
        params.add(parameterName);
      }
      final StringBuilder sb=new StringBuilder();
      if (TypeKind.VOID != lifecycleMethod.getMethodType().getReturnType().getKind()) {
        sb.append("String_Node_Str");
      }
      sb.append("String_Node_Str");
      sb.append(Character.toUpperCase(methodName.charAt(0)));
      sb.append(methodName.substring(1));
      sb.append("String_Node_Str");
      sb.append(params.toString());
      sb.append("String_Node_Str");
      method.addStatement(sb.toString());
      builder.addMethod(method.build());
    }
  }
  return builder.build();
}