Program: 8539
Project: 8539
Buggy source:
private Map<String,String> getParamFields(RopRequest ropRequest){
  if (!requestAllFields.containsKey(ropRequest.getClass())) {
    final ArrayList<Field> allFields=new ArrayList<Field>();
    final ArrayList<String> ignoreSignFieldNames=new ArrayList<String>();
    ReflectionUtils.doWithFields(ropRequest.getClass(),new ReflectionUtils.FieldCallback(){
      @Override public void doWith(      Field field) throws IllegalArgumentException, IllegalAccessException {
        ReflectionUtils.makeAccessible(field);
        if (!isTemporaryField(field)) {
          allFields.add(field);
        }
        if (isIgoreSignField(field)) {
          ignoreSignFieldNames.add(field.getName());
        }
      }
      private boolean isTemporaryField(      Field field){
        Annotation[] declaredAnnotations=field.getDeclaredAnnotations();
        if (declaredAnnotations != null) {
          for (          Annotation declaredAnnotation : declaredAnnotations) {
            if (declaredAnnotation.equals(Temporary.class)) {
              return true;
            }
          }
        }
        return false;
      }
      private boolean isIgoreSignField(      Field field){
        Annotation[] declaredAnnotations=field.getDeclaredAnnotations();
        if (declaredAnnotations != null) {
          for (          Annotation declaredAnnotation : declaredAnnotations) {
            if (declaredAnnotation.equals(IgnoreSign.class)) {
              return true;
            }
          }
        }
        return false;
      }
    }
);
    requestAllFields.put(ropRequest.getClass(),allFields);
    requestIgnoreSignFieldNames.put(ropRequest.getClass(),ignoreSignFieldNames);
  }
  List<Field> fields=requestAllFields.get(ropRequest.getClass());
  Map<String,String> params=new HashMap<String,String>();
  for (  Field field : fields) {
    Object fieldValue=ReflectionUtils.getField(field,ropRequest);
    if (fieldValue != null) {
      params.put(field.getName(),fieldValue.toString());
    }
  }
  return params;
}

Fixed version (ground truth):
private Map<String,String> getParamFields(RopRequest ropRequest){
  if (!requestAllFields.containsKey(ropRequest.getClass())) {
    final ArrayList<Field> allFields=new ArrayList<Field>();
    final ArrayList<String> ignoreSignFieldNames=new ArrayList<String>();
    ReflectionUtils.doWithFields(ropRequest.getClass(),new ReflectionUtils.FieldCallback(){
      @Override public void doWith(      Field field) throws IllegalArgumentException, IllegalAccessException {
        ReflectionUtils.makeAccessible(field);
        if (!isTemporaryField(field)) {
          allFields.add(field);
          if (isIgoreSignField(field)) {
            ignoreSignFieldNames.add(field.getName());
          }
        }
      }
      private boolean isTemporaryField(      Field field){
        Annotation[] declaredAnnotations=field.getDeclaredAnnotations();
        if (declaredAnnotations != null) {
          for (          Annotation declaredAnnotation : declaredAnnotations) {
            if (declaredAnnotation.equals(Temporary.class)) {
              return true;
            }
          }
        }
        return false;
      }
      private boolean isIgoreSignField(      Field field){
        Annotation[] declaredAnnotations=field.getDeclaredAnnotations();
        if (declaredAnnotations != null) {
          for (          Annotation declaredAnnotation : declaredAnnotations) {
            if (ClassUtils.isAssignableValue(IgnoreSign.class,declaredAnnotation)) {
              return true;
            }
          }
        }
        return false;
      }
    }
);
    requestAllFields.put(ropRequest.getClass(),allFields);
    requestIgnoreSignFieldNames.put(ropRequest.getClass(),ignoreSignFieldNames);
  }
  List<Field> fields=requestAllFields.get(ropRequest.getClass());
  Map<String,String> params=new HashMap<String,String>();
  for (  Field field : fields) {
    Object fieldValue=ReflectionUtils.getField(field,ropRequest);
    if (fieldValue != null) {
      params.put(field.getName(),fieldValue.toString());
    }
  }
  return params;
}