- 浏览: 30004 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
donsun:
refar 写道怎么没了?作者写symbian没饭吃所以写不下 ...
FindBugs缺陷类型统计分析(部分) -
donsun:
哈哈,对不住大家,iteye粘贴表格非常吃力。所以内有耐性就没 ...
FindBugs缺陷类型统计分析(部分) -
蛤蟆仙人:
详细点的吧 资料太难找
FindBugs缺陷类型统计分析(部分) -
baihongsheng:
Method checks to see if result ...
FindBugs缺陷类型统计分析(部分) -
refar:
怎么没了?作者写symbian没饭吃所以写不下去了?
FindBugs缺陷类型统计分析(部分)
FindBugs缺陷类型统计分析(部分)
目录
1 正确性警告(CORRECTNESS WARNINGS ) 4
1.1 AM: CREATES AN EMPTY JAR FILE ENTRY 4
1.2 AM: CREATES AN EMPTY ZIP FILE ENTRY 4
1.3 BC: IMPOSSIBLE CAST 4
1.4 BC: INSTANCEOF WILL ALWAYS RETURN FALSE 5
1.5 BIT: INCOMPATIBLE BIT MASKS 5
1.6 BIT: INCOMPATIBLE BIT MASKS 6
1.7 BIT: INCOMPATIBLE BIT MASKS 6
1.8 BIT: BITWISE OR OF SIGNED BYTE VALUE 7
1.9 BOA: CLASS OVERRIDES A METHOD IMPLEMENTED IN SUPER CLASS ADAPTER WRONGLY 8
1.10 CN: CLASS IMPLEMENTS CLONEABLE BUT DOES NOT DEFINE OR USE CLONE METHOD 8
1.11 CN: CLONE METHOD DOES NOT CALL SUPER.CLONE() 8
1.12 CO: ABSTRACT CLASS DEFINES COVARIANT COMPARETO() METHOD 9
1.13 CO: COVARIANT COMPARETO() METHOD DEFINED 10
1.14 DE: METHOD MIGHT DROP EXCEPTION 10
1.15 DE: METHOD MIGHT IGNORE EXCEPTION 11
1.16 DLS: OVERWRITTEN INCREMENT 11
1.17 NP: POSSIBLE NULL POINTER DEREFERENCE DUE TO RETURN VALUE OF CALLED METHOD 12
1.18 NP: METHOD CALL PASSES NULL FOR UNCONDITIONALLY DEREFERENCED PARAMETER 12
1.19 NP: METHOD CALL PASSES NULL FOR UNCONDITIONALLY DEREFERENCED PARAMETER 13
1.20 NP: NON-VIRTUAL METHOD CALL PASSES NULL FOR UNCONDITIONALLY DEREFERENCED PARAMETER 13
1.21 NP: STORE OF NULL VALUE INTO FIELD ANNOTATED NONNULL 13
1.22 NP: READ OF UNWRITTEN FIELD 13
1.23 NS: QUESTIONABLE USE OF NON-SHORT-CIRCUIT LOGIC 14
1.24 NM: CLASS DEFINES EQUAL(); SHOULD IT BE EQUALS()? 14
1.25 NM: CONFUSING METHOD NAMES 14
1.26 NM: CLASS DEFINES HASHCODE(); SHOULD IT BE HASHCODE()? 15
1.27 NM: CLASS DEFINES TOSTRING(); SHOULD IT BE TOSTRING()? 15
1.28 NM: APPARENT METHOD/CONSTRUCTOR CONFUSION 15
1.29 NM: VERY CONFUSING METHOD NAMES 16
1.30 ODR: METHOD MAY FAIL TO CLOSE DATABASE RESOURCE 16
1.31 ODR: METHOD MAY FAIL TO CLOSE DATABASE RESOURCE ON EXCEPTION 17
1.32 OS: METHOD MAY FAIL TO CLOSE STREAM 18
1.33 OS: METHOD MAY FAIL TO CLOSE STREAM ON EXCEPTION 18
1.34 QBA: METHOD ASSIGNS BOOLEAN LITERAL IN BOOLEAN EXPRESSION 19
1.35 QF: COMPLICATED, SUBTLE OR WRONG INCREMENT IN FOR-LOOP 19
1.36 RC: SUSPICIOUS REFERENCE COMPARISON 20
1.37 RCN: REDUNDANT COMPARISON OF NON-NULL VALUE TO NULL 20
1.38 RCN: REDUNDANT COMPARISON OF TWO NULL VALUES 21
1.39 RCN: REDUNDANT NULLCHECK OF VALUE KNOWN TO BE NON-NULL 21
1.40 RCN: REDUNDANT NULLCHECK OF VALUE KNOWN TO BE NULL 21
1.41 RCN: NULLCHECK OF VALUE PREVIOUSLY DEREFERENCED 21
1.42 RE: INVALID SYNTAX FOR REGULAR EXPRESSION 22
1.43 RE: "." USED FOR REGULAR EXPRESSION 22
1.44 RR: METHOD IGNORES RESULTS OF INPUTSTREAM.READ() 22
1.45 RR: METHOD IGNORES RESULTS OF INPUTSTREAM.SKIP() 23
1.46 RV: RANDOM VALUE FROM 0 TO 1 IS COERCED TO THE INTEGER 0 23
1.47 RV: METHOD CHECKS TO SEE IF RESULT OF STRING.INDEXOF IS POSITIVE 23
1.48 RV: METHOD DISCARDS RESULT OF READLINE AFTER CHECKING IF IT IS NONNULL 23
1.49 RV: REMAINDER OF 32-BIT SIGNED RANDOM INTEGER 24
1.50 RV: METHOD IGNORES RETURN VALUE 24
1.51 SA: SELF ASSIGNMENT OF FIELD 24
2 国际化警告(INTERNATIONALIZATION WARNINGS ) 24
2.1 DM: METHOD INVOKES DUBIOUS STRING.TOUPPERCASE() OR STRING.TOLOWERCASE; USE THE LOCALE PARAMETERIZED VERSION INSTEAD 25
3 多线程正确性警告(MULTITHREADED CORRECTNESS WARNINGS ) 25
3.1 RU: INVOKES RUN ON A THREAD (DID YOU MEAN TO START IT INSTEAD?) 25
3.2 SC: CONSTRUCTOR INVOKES THREAD.START() 25
3.3 SP: METHOD SPINS ON FIELD 26
3.4 SWL: METHOD CALLS THREAD.SLEEP() WITH A LOCK HELD 26
3.5 TLW: WAIT WITH TWO LOCKS HELD 26
3.6 UG: UNSYNCHRONIZED GET METHOD, SYNCHRONIZED SET METHOD 27
3.7 UL: METHOD DOES NOT RELEASE LOCK ON ALL PATHS 27
3.8 UL: METHOD DOES NOT RELEASE LOCK ON ALL EXCEPTION PATHS 28
3.9 UW: UNCONDITIONAL WAIT IN METHOD 28
3.10 VO: A VOLATILE REFERENCE TO AN ARRAY DOESN'T TREAT THE ARRAY ELEMENTS AS VOLATILE 28
3.11 WS: CLASS'S WRITEOBJECT() METHOD IS SYNCHRONIZED BUT NOTHING ELSE IS 29
3.12 WA: CONDITION.AWAIT() NOT IN LOOP IN METHOD 29
3.13 WA: WAIT NOT IN LOOP IN METHOD 29
4 安全脆弱代码警告(MALICIOUS CODE VULNERABILITY WARNINGS ) 30
4.1 EI: METHOD MAY EXPOSE INTERNAL REPRESENTATION BY RETURNING REFERENCE TO MUTABLE OBJECT 30
4.2 EI2: METHOD MAY EXPOSE INTERNAL REPRESENTATION BY INCORPORATING REFERENCE TO MUTABLE OBJECT 30
5 性能问题(PERFORMANCE WARNINGS) 30
5.1 DM: METHOD INVOKES DUBIOUS BOOLEAN CONSTRUCTOR; USE BOOLEAN.VALUEOF(...) INSTEAD 30
6 不提倡的风格(STYLE WARNINGS) 31
6.1 BC: QUESTIONABLE CAST TO ABSTRACT 31
1 正确性警告(Correctness Warnings )
1.1 AM: Creates an empty jar file entry
项目 |
内容 |
BugID |
AM_CREATES_EMPTY_JAR_FILE_ENTRY |
错误范式 |
ZipEntry zipEntry=new ZipEntry(fileTo); zipOutputStream.putNextEntry(zipEntry); zipOutputStream.closeEntry(); |
正确范式 |
ZipEntry zipEntry=new ZipEntry(fileTo); zipOutputStream.putNextEntry(zipEntry); // do something FileInputStream fileInputStream=new FileInputStream(file); while((n=fileInputStream.read(rgb))>-1) { zipOutputStream.write(rgb,0,n); } fileInputStream.close(); // do end zipOutputStream.closeEntry(); zipOutputStream.close(); |
描述 |
创 建了一个空的 Jar 文件 |
详细 |
创 建了一个空的 Jar 文件,在 调 用 putNextEntry() 和 closeEntry() 之 间 ,没有做任何写入操作。 |
重要级别 |
|
1.2 AM: Creates an empty zip file entry
项目 |
内容 |
BugID |
AM_CREATES_EMPTY_ZIP_FILE_ENTRY |
错误范式 |
同上 |
正确范式 |
同上 |
描述 |
同上 |
详细 |
同上 |
重要级别 |
|
1.3 BC: Impossible cast
项目 |
内容 |
BugID |
BC_IMPOSSIBLE_CAST |
错误范式 |
Object obj = new Object(); Vector list = (Vector)obj; |
正确范式 |
|
描述 |
必然会导致类型转换异常( ClassCastException )的表达式 |
详细 |
导致该错误的几种情况: <!-- [if !supportLists]-->1. <!-- [endif]-->无公共基类类型进行显示类型转换 <!-- [if !supportLists]-->2. <!-- [endif]-->纯基类型向派生类显示类型转换 <!-- [if !supportLists]-->3. <!-- [endif]-->继承链中非公共节点间进行显示类型转换
|
重要级别 |
|
1.4 BC: instanceof will always return false
项目 |
内容 |
BugID |
BC_IMPOSSIBLE_INSTANCEOF |
错误范式 |
public boolean isBusy() { return false; } |
正确范式 |
|
描述 |
某个方法始终返回 false |
详细 |
如果有方法始终返回 false ,那么就要考虑到是不是编码的时候有所遗漏或者会导致逻辑错误,需要谨慎对待。 |
重要级别 |
|
1.5 BIT: Incompatible bit masks
项目 |
内容 |
BugID |
BIT_AND |
错误范式 |
public static final int M_SHOW_WINDOW = 0x01; public static final int M_WINDOW_VISIBLE = 0x11;
public boolean isVisible(int mask) {
if ((mask & M_SHOW_WINDOW) == M_WINDOW_VISIBLE) { return true; } else { return false; } } |
正确范式 |
public static final int M_SHOW_WINDOW = 0x01; public static final int M_WINDOW_VISIBLE = 0x11;
public boolean isVisible(int mask) {
if ((mask & M_SHOW_WINDOW) == M_SHOW_WINDOW) { return true; } else { return false; } } |
描述 |
不起作用的掩码 |
详细 |
当掩码值设置不合理或判断方式错误时会导致掩码值无论为什么都无法满足程序分支遍历要求,可能是设计或编码问题导致,请确认程序逻辑是否正确。 双目“ & ”运算符表达式中包含常量,则这个表达式的值必然小于等于这个常量,如果比较的值为一个大于该常量的另一个常量,则该条件永远不会满足。 |
重要级别 |
|
1.6 BIT: Incompatible bit masks
项目 |
内容 |
BugID |
BIT_AND_ZZ |
错误范式 |
public static final int M_SHOW_WINDOW = 0x0;
public boolean isVisible(int mask) {
if ((mask & M_SHOW_WINDOW) == M_WINDOW_VISIBLE) { return true; } else { return false; } } |
正确范式 |
public static final int M_SHOW_WINDOW = 0x01;
public boolean isVisible(int mask) {
if ((mask & M_SHOW_WINDOW) == M_WINDOW_VISIBLE) { return true; } else { return false; } } |
描述 |
不起作用的掩码 |
详细 |
当掩码值设置不合理或判断方式错误时会导致掩码值无论为什么都无法满足程序分支遍历要求,可能是设计或编码问题导致,请确认程序逻辑是否正确。 0 不能作为功能掩码,否则表达式 (mask & 0) ==0) 始终为真,功能掩码失效。 |
重要级别 |
|
1.7 BIT: Incompatible bit masks
项目 |
内容 |
BugID |
BIT_IOR |
错误范式 |
public static final int M_SHOW_WINDOW = 0x11; public static final int M_WINDOW_VISIBLE = 0x01;
public boolean isVisible(int mask) {
if ((mask | M_SHOW_WINDOW) == M_WINDOW_VISIBLE) { return true; } else { return false; } } |
正确范式 |
public static final int M_SHOW_WINDOW = 0x01; public static final int M_WINDOW_VISIBLE = 0x11;
public boolean isVisible(int mask) {
if ((mask | M_SHOW_WINDOW) == M_WINDOW_VISIBLE) { return true; } else { return false; } } |
描述 |
不起作用的掩码 |
详细 |
当掩码值设置不合理或判断方式错误时会导致掩码值无论为什么都无法满足程序分支遍历要求,可能是设计或编码问题导致,请确认程序逻辑是否正确。 双目“ | ”运算符表达式中包含常量,则这个表达式的值必然大于等于这个常量,如果比较的值为一个小于该常量的另一个常量,则该条件永远不会满足。 |
重要级别 |
|
评论
哈哈,写Symbian已经是历史了,现在改写Android了:)
给详细谢谢呗
发表评论
-
优酷屏蔽广告方法(2014-11-11已验证)
2014-11-07 17:57 665广告是免费媒体网站 ... -
转载:网站分析KPI汇总
2012-06-24 14:24 793转载:网站分析KPI汇总 ... -
转载:网站分析基础概念之网页与网页浏览数
2012-06-24 14:23 752转载:网站分析基础概念之网页与网页浏览数 网站分析基础 ... -
转载:网站分析基础概念之访问数
2012-06-24 14:22 715网站分析基础概念之访问数 ... -
转载:网站分析基础概念之维度与度量
2012-06-24 14:21 896网站分析基础概念之维度与度量 ... -
网站分析的烦恼连载(优化篇下)
2012-06-12 13:31 715原文出处:数码林博客 http://blog.digital ... -
网站分析-这里好像有问题!(一)
2012-06-12 13:29 694原文出处:数码林博客 ... -
网站分析-这里好像有问题!(二)
2012-06-12 13:28 656原文出处:数码林博客 http://blog.digital ... -
网站分析的烦恼连载(战略篇上)
2012-06-12 13:26 638原文出处:数码林博客 ... -
Symbian开发异常处理框架
2010-06-17 13:49 823Symbian开发异常处理框架 ... -
WM应用开发中DotNet Compact framework版本的选择
2010-05-31 08:44 1441WM应用开发中DotNet Compact framewo ... -
Symbian移动端SSL改造方案调研——基于主线程创建活动对象与SSL服务器交互模型
2010-05-30 13:46 1358Symbian移动端SSL改造方案调研 ——基于主线程创 ... -
DotNet托管C# VS DotNet托管C# 调用C++本地代码
2010-05-28 15:45 1521DotNet托管C# VS DotNet托管C# 调用C++本 ... -
java mem report vm java 虚拟机 http web 2.0 web3.0 c# doc vba
2010-05-24 17:03 815java mem report vm java 虚拟机 ht ... -
Java系统内存泄漏分析
2010-05-21 15:23 1575Java系统内存泄漏分析报 ... -
数据中心无缝热迁移解决方案
2010-05-18 14:48 55数据中心无缝热迁移解 ... -
FindBugs在项目中的应用
2010-05-18 09:04 1269FindBugs在项目中的应用 目录 1 FINDBUGS ... -
Symbian内存优化方案
2010-05-17 12:50 952Symbian内存优化方案 1 ...
相关推荐
Findbugs缺陷等级对照表
一直在找Findbugs缺陷等级对照表,但是找到的大多都是英文的,这给因为不好的兄弟姐妹带来了一些困难,尤其是初学者,希望这个文档能给你们带来帮助!
FindBugs 缺陷模式FindBugs 缺陷模式FindBugs 缺陷模式FindBugs 缺陷模式FindBugs 缺陷模式
如何进行findbugs规则设置,进行问题的缺陷分析。 如何进行findbugs规则设置,进行问题的缺陷分析。
findbugs错误类型的中文解释 findbugs 错误类型 中文解释 bug type
Findbugs缺陷等级对照表.pdf
共整理了findbugs错误类型37个,有错误举例,同时附有正确写法。
Findbugs缺陷详解与英文代号的对照表
FindBugs是一款Java静态代码分析工具,与其他静态分析工具(如Checkstyle和PMD)不同,FindBugs 不注重样式或者格式,它专注于寻找真正的缺陷或者潜在的性能问题,它可以帮助java工程师提高代码质量以及排除隐含的...
最新版的findbugs及缺陷详解与英文代号的对照表
rule.findbugs.IMSE_DONT_CATCH_...rule.findbugs.BX_BOXING_IMMEDIATELY_UNBOXED.name=性能 - 基本类型包装之后立刻解包 rule.findbugs.IJU_SETUP_NO_SUPER.name=使用错误 - TestCase定义的setUp没有调用super.setUp()
findbugs 1.3.9 findbugs 1.3.9 findbugs 1.3.9 findbugs 1.3.9 findbugs 1.3.9 findbugs 1.3.9
java代码缺陷自动分析工具之FindBugs介绍.pdf
FindBugs通过检查类文件或 JAR文件,将字节码与一组缺陷模式进行对比从而发现代码缺陷,完成静态代码分析。FindBugs既提供可视化 UI 界面,同时也可以作为 Eclipse插件使用。文本将主要使用将 FindBugs作为 ...
在这个由两部分组成的系列文章的第一部分中,高级软件工程师 Chris Grindstaff 分析了 FindBugs 如何帮助提高代码质量以及排除隐含的缺陷。代码质量工具的一个问题是它们容易为开发人员提供大量但并非真正问题的问题...
findbugs插件使用文档
FindBugs 是一个静态分析工具,它检查类或者 JAR 文件,将字节码与一组缺陷模式进行对比以发现可能的问题。有了静态分析工具,就可以在不实际运行程序的情况对软件进行分析。不是通过分析类文件的形式或结构来确定...
FindBugs通过检查类文件或 JAR文件,将字节码与一组缺陷模式进行对比从而发现代码缺陷,完成静态代码分析。FindBugs既提供可视化 UI 界面,同时也可以作为 Eclipse插件使用。文本将主要使用将 FindBugs作为 Eclipse...
1、将下载回来的zip包解压,得到文件夹:edu.umd.cs.findbugs.plugin.eclipse_1.3.9.20090821, 将该文件夹拷贝到myeclipse安装目录下common/plugins目录下。我的目录结构:D:\Genuitec\MyEclipse8.5\Common\...