Program: 80890
Project: 80890
Buggy source:
@SuppressWarnings("String_Node_Str") public ValueProxy make(IocMaking ing,IocValue iv){
  Object value=iv.getValue();
  String type=iv.getType();
  if ("String_Node_Str".equals(type) || null == value) {
    return new StaticValue(null);
  }
 else   if ("String_Node_Str".equals(type) || null == type) {
    if (value.getClass().isArray()) {
      Object[] vs=(Object[])value;
      IocValue[] tmp=new IocValue[vs.length];
      for (int i=0; i < tmp.length; i++)       tmp[i]=(IocValue)vs[i];
      return new ArrayValue(ing,tmp);
    }
 else     if (value instanceof Map<?,?>) {
      return new MapValue(ing,(Map<String,IocValue>)value,(Class<? extends Map<String,Object>>)value.getClass());
    }
 else     if (value instanceof Collection<?>) {
      return new CollectionValue(ing,(Collection<IocValue>)value,(Class<? extends Collection<Object>>)value.getClass());
    }
 else     if (value instanceof IocObject) {
      return new InnerValue((IocObject)value);
    }
    return new StaticValue(value);
  }
 else   if ("String_Node_Str".equals(type)) {
    String s=value.toString();
    if ("String_Node_Str".equalsIgnoreCase(s)) {
      return new IocSelfValue();
    }
 else     if ("String_Node_Str".equalsIgnoreCase(s)) {
      return new ObjectNameValue();
    }
    return new ReferValue(s);
  }
 else   if ("String_Node_Str".equals(type)) {
    return new JavaValue(value.toString());
  }
 else   if ("String_Node_Str".equals(type)) {
    return new FileValue(value.toString());
  }
 else   if ("String_Node_Str".equals(type)) {
    return new EnvValue(value.toString());
  }
 else   if ("String_Node_Str".equals(type)) {
    return new SysPropValue(value.toString());
  }
 else   if ("String_Node_Str".equals(type)) {
    return new InnerValue((IocObject)value);
  }
 else   if ("String_Node_Str".equals(type)) {
    return new JNDI_Value(value.toString());
  }
  return null;
}

Fixed version (ground truth):
@SuppressWarnings("String_Node_Str") public ValueProxy make(IocMaking ing,IocValue iv){
  Object value=iv.getValue();
  String type=iv.getType();
  if ("String_Node_Str".equals(type) || null == value) {
    return new StaticValue(null);
  }
 else   if ("String_Node_Str".equals(type) || null == type) {
    if (value.getClass().isArray()) {
      Object[] vs=(Object[])value;
      IocValue[] tmp=new IocValue[vs.length];
      for (int i=0; i < tmp.length; i++)       tmp[i]=(IocValue)vs[i];
      return new ArrayValue(ing,tmp);
    }
 else     if (value instanceof Map<?,?>) {
      return new MapValue(ing,(Map<String,IocValue>)value,(Class<? extends Map<String,Object>>)value.getClass());
    }
 else     if (value instanceof Collection<?>) {
      return new CollectionValue(ing,(Collection<IocValue>)value,(Class<? extends Collection<Object>>)value.getClass());
    }
 else     if (value instanceof IocObject) {
      return new InnerValue((IocObject)value);
    }
    return new StaticValue(value);
  }
 else   if ("String_Node_Str".equals(type)) {
    String s=value.toString();
    if (null != s) {
      String renm=s.toLowerCase();
      if ("String_Node_Str".equals(renm)) {
        return new IocSelfValue();
      }
 else       if ("String_Node_Str".equals(renm)) {
        return new ObjectNameValue();
      }
 else       if ("String_Node_Str".equals(renm)) {
        return new IocContextObjectValue();
      }
    }
    return new ReferValue(s);
  }
 else   if ("String_Node_Str".equals(type)) {
    return new JavaValue(value.toString());
  }
 else   if ("String_Node_Str".equals(type)) {
    return new FileValue(value.toString());
  }
 else   if ("String_Node_Str".equals(type)) {
    return new EnvValue(value.toString());
  }
 else   if ("String_Node_Str".equals(type)) {
    return new SysPropValue(value.toString());
  }
 else   if ("String_Node_Str".equals(type)) {
    return new InnerValue((IocObject)value);
  }
 else   if ("String_Node_Str".equals(type)) {
    return new JNDI_Value(value.toString());
  }
  return null;
}