Program: 30198
Project: 30198
Buggy source:
@SuppressWarnings("String_Node_Str") public static void setParam(Action action,String param,String value) throws NoSuchFieldException, IllegalArgumentException, IllegalAccessException {
  Class<?> clazz=action.getClass();
  Field field=getField(clazz,param);
  if (field == null)   throw new NoSuchFieldException(param);
  final boolean accessible=field.isAccessible();
  field.setAccessible(true);
  if (field.getType().isAssignableFrom(String.class)) {
    field.set(action,value);
  }
 else   if (field.getType().isAssignableFrom(boolean.class)) {
    field.setBoolean(action,Boolean.parseBoolean(value));
  }
 else   if (field.getType().isAssignableFrom(Boolean.class)) {
    Boolean b=null;
    if (value != null)     b=Boolean.valueOf(value);
    field.set(action,b);
  }
 else   if (field.getType().isAssignableFrom(float.class)) {
    try {
      field.setFloat(action,Float.parseFloat(value));
    }
 catch (    NumberFormatException ignored) {
    }
  }
 else   if (field.getType().isAssignableFrom(Float.class)) {
    try {
      Float f=null;
      if (value != null)       f=Float.valueOf(value);
      field.set(action,f);
    }
 catch (    NumberFormatException ignored) {
    }
  }
 else   if (field.getType().isAssignableFrom(int.class)) {
    try {
      Integer i=null;
      if (value != null)       i=Integer.parseInt(value);
      field.setInt(action,i);
    }
 catch (    NumberFormatException ignored) {
    }
  }
 else   if (field.getType().isAssignableFrom(Vector2.class)) {
    field.set(action,Param.parseVector2(value));
  }
 else   if (field.getType().isAssignableFrom(SceneActorRef.class)) {
    if (value == null)     field.set(action,null);
 else     field.set(action,new SceneActorRef(value));
  }
 else   if (field.getType().isAssignableFrom(ActorAnimationRef.class)) {
    if (value == null)     field.set(action,null);
 else     field.set(action,new ActorAnimationRef(value));
  }
 else   if (field.getType().isAssignableFrom(Color.class)) {
    Color a=Param.parseColor(value);
    field.set(action,a);
  }
 else   if (field.getType().isEnum()) {
    field.set(action,Enum.valueOf(field.getType().asSubclass(Enum.class),value.toUpperCase()));
  }
 else {
    EngineLogger.error("String_Node_Str" + field.getType());
  }
  field.setAccessible(accessible);
}

Fixed version (ground truth):
@SuppressWarnings("String_Node_Str") public static void setParam(Action action,String param,String value) throws NoSuchFieldException, IllegalArgumentException, IllegalAccessException {
  Class<?> clazz=action.getClass();
  Field field=getField(clazz,param);
  if (field == null)   throw new NoSuchFieldException(param);
  final boolean accessible=field.isAccessible();
  field.setAccessible(true);
  if (field.getType().isAssignableFrom(String.class)) {
    field.set(action,value);
  }
 else   if (field.getType().isAssignableFrom(boolean.class)) {
    field.setBoolean(action,Boolean.parseBoolean(value));
  }
 else   if (field.getType().isAssignableFrom(Boolean.class)) {
    Boolean b=null;
    if (value != null)     b=Boolean.valueOf(value);
    field.set(action,b);
  }
 else   if (field.getType().isAssignableFrom(float.class)) {
    try {
      field.setFloat(action,Float.parseFloat(value));
    }
 catch (    NumberFormatException ignored) {
    }
  }
 else   if (field.getType().isAssignableFrom(Float.class)) {
    try {
      Float f=null;
      if (value != null)       f=Float.valueOf(value);
      field.set(action,f);
    }
 catch (    NumberFormatException ignored) {
    }
  }
 else   if (field.getType().isAssignableFrom(int.class)) {
    try {
      Integer i=null;
      if (value != null)       i=Integer.parseInt(value);
      field.setInt(action,i);
    }
 catch (    NumberFormatException ignored) {
    }
  }
 else   if (field.getType().isAssignableFrom(Vector2.class)) {
    field.set(action,Param.parseVector2(value));
  }
 else   if (field.getType().isAssignableFrom(SceneActorRef.class)) {
    if (value == null)     field.set(action,null);
 else     field.set(action,new SceneActorRef(value));
  }
 else   if (field.getType().isAssignableFrom(ActorAnimationRef.class)) {
    if (value == null)     field.set(action,null);
 else     field.set(action,new ActorAnimationRef(value));
  }
 else   if (field.getType().isAssignableFrom(Color.class)) {
    Color a=Param.parseColor(value);
    field.set(action,a);
  }
 else   if (field.getType().isEnum()) {
    field.set(action,Enum.valueOf(field.getType().asSubclass(Enum.class),value.toUpperCase(Locale.ENGLISH)));
  }
 else {
    EngineLogger.error("String_Node_Str" + field.getType());
  }
  field.setAccessible(accessible);
}