FindBugs错误类型对照表Word格式.docx
《FindBugs错误类型对照表Word格式.docx》由会员分享,可在线阅读,更多相关《FindBugs错误类型对照表Word格式.docx(15页珍藏版)》请在冰豆网上搜索。
UW_UNCOND_WAIT.name=多线程错误-无条件等待
DLS_DEAD_LOCAL_STORE_OF_NULL.name=高危-把null设置给不会用到的局部变量
NM_CLASS_NAMING_CONVENTION.name=类名应该以大写字母开头
RC_REF_COMPARISON_BAD_PRACTICE_BOOLEAN.name=使用错误-怀疑对两个布尔值的引用进行比较
MWN_MISMATCHED_NOTIFY.name=多线程错误-不匹配的notify()
NM_VERY_CONFUSING.name=错误-非常容易迷惑的方法名
FI_NULLIFY_SUPER.name=不良实践-空Finalizer禁用了超类的finalizer
MTIA_SUSPECT_STRUTS_INSTANCE_FIELD.name=高危-继承了strutsAction的类使用了实例变量
DM_STRING_CTOR.name=性能-方法调用了效率很低的newString(String)构造方法
STCAL_INVOKE_ON_STATIC_DATE_FORMAT_INSTANCE.name=多线程错误-调用静态DateFormat
NP_NULL_PARAM_DEREF_NONVIRTUAL.name=使用错误-非虚拟方法调用向非空参数传入了null
FI_EMPTY.name=不良实践-应该删除空的finalizer
CD_CIRCULAR_DEPENDENCY.name=试验-类间存在循环引用
EC_UNRELATED_TYPES.name=使用错误-使用equals()比较不同类型
EI_EXPOSE_STATIC_REP2.name=恶意代码漏洞-把可变对象保存到静态字段中可能会暴露内部静态状态
DMI_INVOKING_TOSTRING_ON_ANONYMOUS_ARRAY.name=错误-对数组执行toString
SIC_INNER_SHOULD_BE_STATIC_ANON.name=性能-可以重构成一个静态内部类
STI_INTERRUPTED_ON_UNKNOWNTHREAD.name=错误-在thread实例上调用了静态Thread.interrupted()方法
CN_IDIOM_NO_SUPER_CALL.name=不良实践-clone方法没有调用super.clone()
VA_FORMAT_STRING_BAD_ARGUMENT.name=错误用法-格式化字符串占位符与传入的参数不匹配
EQ_DOESNT_OVERRIDE_EQUALS.name=高危-类没有覆盖父类的equals方法
BC_IMPOSSIBLE_DOWNCAST_OF_TOARRAY.name=错误用法-集合转换为数组元素时发生的类型转换错误
SE_NO_SUITABLE_CONSTRUCTOR_FOR_EXTERNALIZATION.name=不良实践-类是可扩展的,但是没有提供无参数的构造方法
TQ_EXPLICIT_UNKNOWN_SOURCE_VALUE_REACHES_ALWAYS_SINK.name=错误用法-数值需要类型标示,但是却标记为未知
SIC_INNER_SHOULD_BE_STATIC_NEEDS_THIS.name=性能-可以筹够成一个静态内部类
EQ_CHECK_FOR_OPERAND_NOT_COMPATIBLE_WITH_THIS.name=不良实践-equals检测不兼容的参数操作
RV_RETURN_VALUE_OF_PUTIFABSENT_IGNORED.name=错误用法-忽略了putIfAbsent的返回值,传递给putIfAbsent的值被重用
STCAL_INVOKE_ON_STATIC_CALENDAR_INSTANCE.name=多线程错误-调用静态Calendar
MS_CANNOT_BE_FINAL.name=恶意代码漏洞-字段不是final的,不能防止恶意代码的攻击
IS_INCONSISTENT_SYNC.name=多线程错误-不一致的同步
SE_NO_SERIALVERSIONID.name=不良实践-类是可序列化的,但是没有定义serialVersionUID
EI_EXPOSE_REP2.name=恶意代码漏洞-可能暴露内部实现,通过与可变对象引用协作
NM_METHOD_CONSTRUCTOR_CONFUSION.name=错误用法-明显的方法/构造方法混淆
ICAST_INTEGER_MULTIPLY_CAST_TO_LONG.name=高危-整形乘法的结果转换为long型
QF_QUESTIONABLE_FOR_LOOP.name=高危-for循环中存在复杂,微妙或者错误的自增
DLS_DEAD_STORE_OF_CLASS_LITERAL.name=错误用法-类中保存了无用字符
NM_FUTURE_KEYWORD_USED_AS_MEMBER_IDENTIFIER.name=不良实践-使用了未来java版本中成为关键字的标识
BC_VACUOUS_INSTANCEOF.name=高危-instanceof会一直返回true
INT_VACUOUS_BIT_OPERATION.name=高危-在整形上进行位操作时有一些位上出现空洞
NP_NULL_INSTANCEOF.name=错误用法-一个已知的null值被检测它是否是一个类型的实例
SIC_THREADLOCAL_DEADLY_EMBRACE.name=错误用法-非静态内部类和ThreadLocal的致命结合
EQ_UNUSUAL.name=高危-罕见的equals方法
IJU_NO_TESTS.name=错误用法-TestCase没有任何测试
EQ_OVERRIDING_EQUALS_NOT_SYMMETRIC.name=错误用法-equals方法覆盖了父类的equals可能功能不符
XFB_XML_FACTORY_BYPASS.name=高危-方法直接调用了xml接口的一个具体实现
SWL_SLEEP_WITH_LOCK_HELD.name=多线程错误-方法在获得锁时调用了Thread.sleep()
CN_IDIOM.name=不良实践-类实现了Cloneable,但是没有定义或使用clone方法
WA_AWAIT_NOT_IN_LOOP.name=多线程错误-未在循环中使用的Condition.await()
DM_FP_NUMBER_CTOR.name=性能-方法调用了低效的浮点书构造方法;
应该使用静态的valueOf代替
SF_SWITCH_NO_DEFAULT.name=Switch语句中没有包含default
NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE.name=高危-调用返回返回值可能出现null值
NP_CLONE_COULD_RETURN_NULL.name=不良实践-Clone方法可能返回null
MS_OOI_PKGPROTECT.name=恶意代码漏洞-属性应该从接口中移除并将访问权限设置为包保护
DM_BOXED_PRIMITIVE_TOSTRING.name=性能-方法使用了装箱的基本类型只为了调用toString
EQ_ABSTRACT_SELF.name=不良实践-抽象类定义了协变的equals方法
DM_STRING_TOSTRING.name=性能-方法调用了String的toString()方法
SE_METHOD_MUST_BE_PRIVATE.name=错误用法-方法必须是private的为了让序列化正常工作
DL_SYNCHRONIZATION_ON_BOOLEAN.name=多线程错误-在Boolean上使用同步可能导致死锁
UWF_UNWRITTEN_FIELD.name=错误用法-未赋值属性
IS2_INCONSISTENT_SYNC.name=多线程错误-不一致的同步
IM_AVERAGE_COMPUTATION_COULD_OVERFLOW.name=高危-计算平均值可能溢出
BIT_SIGNED_CHECK_HIGH_BIT.name=错误用法-检查位运算的符号
FL_MATH_USING_FLOAT_PRECISION.name=错误用法-方法进行数学运算时使用了浮点数的精度
WS_WRITEOBJECT_SYNC.name=多线程错误-类的writeObject()方法是同步的,但是没有做其他事情
RV_RETURN_VALUE_IGNORED.name=错误用法-方法忽略了返回值
SQL_NONCONSTANT_STRING_PASSED_TO_EXECUTE.name=安全风险-非常量的字符串传递给方法执行SQL语句
JCIP_FIELD_ISNT_FINAL_IN_IMMUTABLE_CLASS.name=不良实践-不可变的类的属性应该是final
AM_CREATES_EMPTY_ZIP_FILE_ENTRY.name=不良实践-创建了一个空的zip文件的入口
DM_NEXTINT_VIA_NEXTDOUBLE.name=性能-使用Random的nextInt方法来获得一个随机整数,而不是nextDouble
UI_INHERITANCE_UNSAFE_GETRESOURCE.name=不良实践-如果类被扩展,GetResource的使用可能就是不安全的
SIO_SUPERFLUOUS_INSTANCEOF.name=错误用法-不必要的类型检测使用instanceof操作符
EQ_OTHER_NO_OBJECT.name=错误用法-equals()方法定义,但是没有覆盖equals(Object)
USM_USELESS_ABSTRACT_METHOD.name=试验-抽象方法已经在实现的接口中定义了
MTIA_SUSPECT_SERVLET_INSTANCE_FIELD.name=高危-扩展Servlet的类使用了实例变量
DM_USELESS_THREAD.name=多线程错误-使用默认的空run方法创建了一个线程
ML_SYNC_ON_UPDATED_FIELD.name=多线程错误-方法在一个修改了的属性上进行了同步
CO_SELF_NO_OBJECT.name=不良实践-协变的compareTo()定义
BC_UNCONFIRMED_CAST.name=高危-未检查/未证实的类型转换
FI_FINALIZER_NULLS_FIELDS.name=不良实践-Finalizer空属性
BIT_AND.name=错误用法-不兼容的位掩码(BIT_AND)
FE_FLOATING_POINT_EQUALITY.name=高危-测试浮点数相等
TQ_EXPLICIT_UNKNOWN_SOURCE_VALUE_REACHES_NEVER_SINK.name=错误用法-值不要求有类型标示,但是标记为未知
NP_NULL_PARAM_DEREF.name=错误用法-方法调用把null传递给一个非null参数
FB_MISSING_EXPECTED_WARNING.name=试验-findbugs丢失了期待或需要的警告
DMI_INVOKING_HASHCODE_ON_ARRAY.name=错误用法-在数组上调用了hashCode
QBA_QUESTIONABLE_BOOLEAN_ASSIGNMENT.name=错误用法-方法在布尔表达式中分配了boolean文字
SA_FIELD_SELF_COMPARISON.name=错误用法-属性自己与自己进行了比较
UR_UNINIT_READ_CALLED_FROM_SUPER_CONSTRUCTOR.name=错误用法-父类的构造方法调用未初始化属性的方法
ES_COMPARING_PARAMETER_STRING_WITH_EQ.name=不良实践-比较字符串参数使用了==或!
=
INT_BAD_COMPARISON_WITH_NONNEGATIVE_VALUE.name=错误用法-错误比较非负值与负数
INT_BAD_COMPARISON_WITH_SIGNED_BYTE.name=错误用法-错误比较带符号的byte
IO_APPENDING_TO_OBJECT_OUTPUT_STREAM.name=错误用法-尝试向一个对象输出流添加信息
FI_MISSING_SUPER_CALL.name=不良实践-Finalizer没有调用父类的finalizer
VA_FORMAT_STRING_EXTRA_ARGUMENTS_PASSED.name=错误用法-传递了多余实际使用的格式化字符串的参数
HE_EQUALS_USE_HASHCODE.name=不良实践-类定义了equals(),但使用了Object.hashCode()
IJU_BAD_SUITE_METHOD.name=错误用法-TestCase声明了一个错误的suite方法
DMI_CONSTANT_DB_PASSWORD.name=安全风险-硬编码了数据库密码
REC_CATCH_EXCEPTION.name=高危-捕获了没有抛出的异常
PS_PUBLIC_SEMAPHORES.name=高危-类在公用接口中暴露了同步和信号
EC_UNRELATED_INTERFACES.name=错误用法-调用equals()比较不同的接口类型
UCF_USELESS_CONTROL_FLOW_NEXT_LINE.name=错误用法-执行到下一行的无用流程控制
LG_LOST_LOGGER_DUE_TO_WEAK_REFERENCE.name=试验-OpenJDK中存在潜在的丢失logger的风险,因为弱引用
NP_UNWRITTEN_FIELD.name=错误用法-读取未初始化的属性
DMI_UNSUPPORTED_METHOD.name=高危-调用不支持的方法
RCN_REDUNDANT_COMPARISON_OF_NULL_AND_NONNULL_VALUE.name=高危-重复比较非空值和null
EC_BAD_ARRAY_COMPARE.name=错误用法-调用equals(),与==效果一样
EI_EXPOSE_REP.name=恶意代码漏洞-可能通过返回一个可变对象的引用暴露了内部实现
NP_DEREFERENCE_OF_READLINE_VALUE.name=高危-没有判断readLine()的结果是否为空
UPM_UNCALLED_PRIVATE_METHOD.name=性能-从未用到的私有方法
NP_NULL_ON_SOME_PATH.name=错误用法-可能出现空指针引用
NP_EQUALS_SHOULD_HANDLE_NULL_ARGUMENT.name=不良实践-equals()方法没有检测null参数
EC_NULL_ARG.name=错误用法-使用空参数调用equals()
SE_BAD_FIELD_STORE.name=不良实践-非序列化值保存在序列化类的实例变量中
VO_VOLATILE_REFERENCE_TO_ARRAY.name=多线程错误-数组的volatile引用不会把数组元素也当做volatile来引用
NP_SYNC_AND_NULL_CHECK_FIELD.name=多线程错误-同步和空值检测发生在同一个属性上
DM_EXIT.name=不良实践-方法调用了System.exit(...)
RC_REF_COMPARISON.name=不良实践-怀疑进行了引用比较
SE_NO_SUITABLE_CONSTRUCTOR.name=不良实践-类是可序列化的,但是父类没有定义无参数构造方法
DC_DOUBLECHECK.name=多线程错误-可能对属性进行了双重检测
DMI_LONG_BITS_TO_DOUBLE_INVOKED_ON_INT.name=错误用法-在int上调用了Double.longBitsToDouble
RpC_REPEATED_CONDITIONAL_TEST.name=错误用法-重复判断条件
WMI_WRONG_MAP_ITERATOR.name=性能-keySet迭代是低效的,使用entrySet代替
DLS_DEAD_LOCAL_STORE.name=高危-未用的局部变量
INT_BAD_REM_BY_1.name=错误用法-整数剩余模1
RV_RETURN_VALUE_IGNORED_BAD_PRACTICE.name=不良实践-方法忽略异常返回值
SA_LOCAL_SELF_ASSIGNMENT.name=高危-局部变量的自我赋值
MS_SHOULD_BE_FINAL.name=恶意代码漏洞-属性不是final,但是应该设置成final
SIC_INNER_SHOULD_BE_STATIC.name=性能-应该是一个静态内部类
NP_GUARANTEED_DEREF.name=错误用法-null值一定会被调用
SE_READ_RESOLVE_MUST_RETURN_OBJECT.name=不良实践-readResolve方法必须返回Object
NP_LOAD_OF_KNOWN_NULL_VALUE.name=高危-加载了已知的null值
BX_BOXING_IMMEDIATELY_UNBOXED_TO_PERFORM_COERCION.name=性能-基本数据被装箱又被拆箱
CN_IMPLEMENTS_CLONE_BUT_NOT_CLONEABLE.name=不良实践-类定义了clone()但没有实现Cloneable
CO_ABSTRACT_SELF.name=不良实践-抽象类定义了协变的compareTo()方法
BAC_BAD_APPLET_CONSTRUCTOR.name=试验-错误的Applet构造方法依赖未初始化的AppletStub
EQ_GETCLASS_AND_CLASS_CONSTANT.name=不良实践-equals方法因为子类失败
DB_DUPLICATE_SWITCH_CLAUSES.name=高危-在两个switch语句中使用了相同的代码
DB_DUPLICATE_BRANCHES.name=高危-在两个分支中使用了相同的代码
UOE_USE_OBJECT_EQUALS.name=试验-在final类上调用了equals,但是没有覆盖Object的equals方法
FI_USELESS.name=不良实践-Finalizer除了调用父类的finalizer以外什么也没做
NP_ALWAYS_NULL.name=错误用法-调用了null指针
DMI_VACUOUS_SELF_COLLECTION_CALL.name=错误用法-集合的调用不能被感知
DLS_DEAD_LOCAL_STORE_IN_RETURN.name=错误用法-返回语句中的无用的赋值
IJU_ASSERT_METHOD_INVOKED_FROM_RUN_METHOD.name=错误用法-在run方法中的JUnit检验不能报告给JUnit
DMI_EMPTY_DB_PASSWORD.name=安全风险-空的数据库密码
DM_BOOLEAN_CTOR.name=性能-方法调用了低效的Boolean构造方法;
使用Boolean.valueOf(...)代替
BC_IMPOSSIBLE_DOWNCAST.name=错误用法-不可能转型
BC_EQUALS_METHOD_SHOULD_WORK_FOR_ALL_OBJECTS.name=不良实践-Equals方法不应该假设任何有关参数类型的事宜
RV_EXCEPTION_NOT_THROWN.name=错误用法-异常创建后就丢弃了,没有抛出
VA_PRIMITIVE_ARRAY_PASSED_TO_OBJECT_VARARG.name=错误用法-基本类型数组传递给一个期待可变对象类型参数的方法
LI_LAZY_INIT_UPDATE_STATIC.name=多线程错误-错误的延迟初始化和更新静态属性
SA_FIELD_SELF_ASSIGNMENT.name=错误用法-属性自身赋值
EQ_ALWAYS_FALSE.name=错误用法-equals方法一直返回false
DMI_RANDOM_USED_ONLY_ONCE.name=不良实践-Random对象创建后只用了一次
NM_CLASS_NOT_EX