Program: 160696
Project: 160696
Buggy source:
private AnnotationDescription createAnnotationDescriptionFrom(AnnotationMirror methodAnnotation,ExecutableElement element){
  ImmutableList.Builder<AnnotationField> annotationFieldsBuilder=ImmutableList.builder();
  for (  Map.Entry<? extends ExecutableElement,? extends AnnotationValue> fieldEntry : methodAnnotation.getElementValues().entrySet()) {
    String fieldName=fieldEntry.getKey().toString();
    TypeMirror type=fieldEntry.getKey().getReturnType();
    TypeMirror componentType=AnnotationFieldKind.componentTypeOf(type);
    boolean arrayed=AnnotationFieldKind.isArrayed(type);
    AnnotationFieldKind annotationFieldKind=AnnotationFieldKind.valueOf(processingEnv,type);
    annotationFieldsBuilder.add(new AnnotationField(fieldName.substring(0,fieldName.length() - "String_Node_Str".length()),fieldEntry.getValue().getValue(),componentType,annotationFieldKind,arrayed));
  }
  AnnotationDescription annotationDescription=new AnnotationDescription(methodAnnotation.getAnnotationType().toString(),annotationFieldsBuilder.build());
  return annotationDescription;
}

Fixed version (ground truth):
private AnnotationDescription createAnnotationDescriptionFrom(AnnotationMirror methodAnnotation,ExecutableElement element){
  ImmutableList.Builder<AnnotationField> annotationFieldsBuilder=ImmutableList.builder();
  ImmutableSet.Builder<String> annotationFieldNamesBuilder=ImmutableSet.builder();
  for (  Map.Entry<? extends ExecutableElement,? extends AnnotationValue> fieldEntry : methodAnnotation.getElementValues().entrySet()) {
    String fieldName=fieldEntry.getKey().toString().substring(0,fieldEntry.getKey().toString().length() - "String_Node_Str".length());
    TypeMirror type=fieldEntry.getKey().getReturnType();
    TypeMirror componentType=AnnotationFieldKind.componentTypeOf(type);
    boolean arrayed=AnnotationFieldKind.isArrayed(type);
    AnnotationFieldKind annotationFieldKind=AnnotationFieldKind.valueOf(processingEnv,type);
    annotationFieldsBuilder.add(new AnnotationField(fieldName,fieldEntry.getValue().getValue(),componentType,annotationFieldKind,arrayed));
    annotationFieldNamesBuilder.add(fieldName);
  }
  ImmutableSet<String> declaredAnnotationFieldNames=annotationFieldNamesBuilder.build();
  for (  Symbol annotationMember : ((Symbol.ClassSymbol)methodAnnotation.getAnnotationType().asElement()).members().getElements()) {
    if (annotationMember instanceof Symbol.MethodSymbol) {
      Symbol.MethodSymbol annotationMemberAsMethod=(Symbol.MethodSymbol)annotationMember;
      String fieldName=annotationMemberAsMethod.getSimpleName().toString();
      if (!declaredAnnotationFieldNames.contains(fieldName)) {
        Type type=annotationMemberAsMethod.getReturnType();
        TypeMirror componentType=AnnotationFieldKind.componentTypeOf(type);
        boolean arrayed=AnnotationFieldKind.isArrayed(type);
        AnnotationFieldKind annotationFieldKind=AnnotationFieldKind.valueOf(processingEnv,type);
        annotationFieldsBuilder.add(new AnnotationField(fieldName,annotationMemberAsMethod.getDefaultValue() == null ? null : annotationMemberAsMethod.getDefaultValue().getValue(),componentType,annotationFieldKind,arrayed));
      }
    }
  }
  AnnotationDescription annotationDescription=new AnnotationDescription(methodAnnotation.getAnnotationType().toString(),annotationFieldsBuilder.build());
  return annotationDescription;
}