Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(874)

Side by Side Diff: doc/bugDescriptions_fr.html

Issue 1232833004: Update findbugs from 3.0.0 to 3.0.1. (Closed) Base URL: https://chromium.googlesource.com/chromium/deps/findbugs.git@master
Patch Set: rebase again Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « doc/bugDescriptions.html ('k') | doc/bugDescriptions_ja.html » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.or g/TR/html4/loose.dtd"> 1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.or g/TR/html4/loose.dtd">
2 <html><head><title>FindBugs Bug Descriptions</title> 2 <html><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8">
3 <title>FindBugs Bug Descriptions</title>
3 <link rel="stylesheet" type="text/css" href="findbugs.css"/> 4 <link rel="stylesheet" type="text/css" href="findbugs.css"/>
4 <link rel="shortcut icon" href="favicon.ico" type="image/x-icon"/> 5 <link rel="shortcut icon" href="favicon.ico" type="image/x-icon"/>
5 </head><body> 6 </head><body>
6 7
7 <table width="100%"><tr> 8 <table width="100%"><tr>
8 9
9 <td bgcolor="#b9b9fe" valign="top" align="left" width="20%"> 10 <td bgcolor="#b9b9fe" valign="top" align="left" width="20%">
10 <table width="100%" cellspacing="0" border="0"> 11 <table width="100%" cellspacing="0" border="0">
11 <tr><td><a class="sidebar" href="index.html"><img src="umdFindbugs.png" alt="Fin dBugs"></a></td></tr> 12 <tr><td><a class="sidebar" href="index.html"><img src="umdFindbugs.png" alt="Fin dBugs"></a></td></tr>
12 13
(...skipping 19 matching lines...) Expand all
32 33
33 <tr><td><a class="sidebar" href="downloads.html"><b>Downloads</b></a></td></tr> 34 <tr><td><a class="sidebar" href="downloads.html"><b>Downloads</b></a></td></tr>
34 35
35 <tr><td>&nbsp;</td></tr> 36 <tr><td>&nbsp;</td></tr>
36 37
37 <tr><td><a class="sidebar" href="http://www.cafeshops.com/findbugs"><b>FindBugs Swag</b></a></td></tr> 38 <tr><td><a class="sidebar" href="http://www.cafeshops.com/findbugs"><b>FindBugs Swag</b></a></td></tr>
38 39
39 <tr><td>&nbsp;</td></tr> 40 <tr><td>&nbsp;</td></tr>
40 41
41 <tr><td><b>Development</b></td></tr> 42 <tr><td><b>Development</b></td></tr>
42 <tr><td><font size="-1">&nbsp;<a class="sidebar" href="http://sourceforge.net/tr acker/?group_id=96405">Open bugs</a></font></td></tr> 43 <tr><td><font size="-1">&nbsp;<a class="sidebar" href="http://sourceforge.net/p/ findbugs/bugs/">Open bugs</a></font></td></tr>
43 <tr><td><font size="-1">&nbsp;<a class="sidebar" href="reportingBugs.html">Repor ting bugs</a></font></td></tr> 44 <tr><td><font size="-1">&nbsp;<a class="sidebar" href="reportingBugs.html">Repor ting bugs</a></font></td></tr>
44 <tr><td><font size="-1">&nbsp;<a class="sidebar" href="contributing.html">Contri buting</a></font></td></tr> 45 <tr><td><font size="-1">&nbsp;<a class="sidebar" href="contributing.html">Contri buting</a></font></td></tr>
45 <tr><td><font size="-1">&nbsp;<a class="sidebar" href="team.html">Dev team</a></ font></td></tr> 46 <tr><td><font size="-1">&nbsp;<a class="sidebar" href="team.html">Dev team</a></ font></td></tr>
46 <tr><td><font size="-1">&nbsp;<a class="sidebar" href="api/index.html">API</a> < a class="sidebar" href="api/overview-summary.html">[no frames]</a></font></td></ tr> 47 <tr><td><font size="-1">&nbsp;<a class="sidebar" href="api/index.html">API</a> < a class="sidebar" href="api/overview-summary.html">[no frames]</a></font></td></ tr>
47 <tr><td><font size="-1">&nbsp;<a class="sidebar" href="Changes.html">Change log< /a></font></td></tr> 48 <tr><td><font size="-1">&nbsp;<a class="sidebar" href="Changes.html">Change log< /a></font></td></tr>
48 <tr><td><font size="-1">&nbsp;<a class="sidebar" href="http://sourceforge.net/pr ojects/findbugs">SF project page</a></font></td></tr> 49 <tr><td><font size="-1">&nbsp;<a class="sidebar" href="http://sourceforge.net/pr ojects/findbugs">SF project page</a></font></td></tr>
49 <tr><td><font size="-1">&nbsp;<a class="sidebar" href="http://code.google.com/p/ findbugs/source/browse/">Browse source</a></font></td></tr> 50 <tr><td><font size="-1">&nbsp;<a class="sidebar" href="http://code.google.com/p/ findbugs/source/browse/">Browse source</a></font></td></tr>
50 <tr><td><font size="-1">&nbsp;<a class="sidebar" href="http://code.google.com/p/ findbugs/source/list">Latest code changes</a></font></td></tr> 51 <tr><td><font size="-1">&nbsp;<a class="sidebar" href="http://code.google.com/p/ findbugs/source/list">Latest code changes</a></font></td></tr>
51 </table> 52 </table>
52 </td> 53 </td>
53 <td align="left" valign="top"> 54 <td align="left" valign="top">
54 <h1>FindBugs Bug Descriptions</h1> 55 <h1>FindBugs Bug Descriptions</h1>
55 <p>This document lists the standard bug patterns reported by 56 <p>This document lists the standard bug patterns reported by
56 <a href="http://findbugs.sourceforge.net">FindBugs</a> version 3.0.0.</p> 57 <a href="http://findbugs.sourceforge.net">FindBugs</a> version 3.0.1.</p>
57 <h2>Summary</h2> 58 <h2>Summary</h2>
58 <table width="100%"> 59 <table width="100%">
59 <tr bgcolor="#b9b9fe"><th>Description</th><th>Category</th></tr> 60 <tr bgcolor="#b9b9fe"><th>Description</th><th>Category</th></tr>
60 <tr bgcolor="#eeeeee"><td><a href="#BC_EQUALS_METHOD_SHOULD_WORK_FOR_ALL_OBJECTS ">BC: Equals method should not assume anything about the type of its argument</a ></td><td>Bad practice</td></tr> 61 <tr bgcolor="#eeeeee"><td><a href="#BC_EQUALS_METHOD_SHOULD_WORK_FOR_ALL_OBJECTS ">BC: Equals method should not assume anything about the type of its argument</a ></td><td>Bad practice</td></tr>
61 <tr bgcolor="#ffffff"><td><a href="#BIT_SIGNED_CHECK">BIT: Check for sign of bit wise operation</a></td><td>Bad practice</td></tr> 62 <tr bgcolor="#ffffff"><td><a href="#BIT_SIGNED_CHECK">BIT: Check for sign of bit wise operation</a></td><td>Bad practice</td></tr>
62 <tr bgcolor="#eeeeee"><td><a href="#CN_IDIOM">CN: La classe implémente Cloneable mais ne définit et n'utilise pas la méthode clone()</a></td><td>Bad practice</t d></tr> 63 <tr bgcolor="#eeeeee"><td><a href="#CN_IDIOM">CN: La classe implémente Cloneable mais ne définit et n'utilise pas la méthode clone()</a></td><td>Bad practice</t d></tr>
63 <tr bgcolor="#ffffff"><td><a href="#CN_IDIOM_NO_SUPER_CALL">CN: La méthode clone () n'appelle pas super.clone()</a></td><td>Bad practice</td></tr> 64 <tr bgcolor="#ffffff"><td><a href="#CN_IDIOM_NO_SUPER_CALL">CN: La méthode clone () n'appelle pas super.clone()</a></td><td>Bad practice</td></tr>
64 <tr bgcolor="#eeeeee"><td><a href="#CN_IMPLEMENTS_CLONE_BUT_NOT_CLONEABLE">CN: C lass defines clone() but doesn't implement Cloneable</a></td><td>Bad practice</t d></tr> 65 <tr bgcolor="#eeeeee"><td><a href="#CN_IMPLEMENTS_CLONE_BUT_NOT_CLONEABLE">CN: C lass defines clone() but doesn't implement Cloneable</a></td><td>Bad practice</t d></tr>
65 <tr bgcolor="#ffffff"><td><a href="#CNT_ROUGH_CONSTANT_VALUE">CNT: Rough value o f known constant found</a></td><td>Bad practice</td></tr> 66 <tr bgcolor="#ffffff"><td><a href="#CNT_ROUGH_CONSTANT_VALUE">CNT: Rough value o f known constant found</a></td><td>Bad practice</td></tr>
66 <tr bgcolor="#eeeeee"><td><a href="#CO_ABSTRACT_SELF">Co: Une classe abstraite d éfinit une méthode compareTo() covariante</a></td><td>Bad practice</td></tr> 67 <tr bgcolor="#eeeeee"><td><a href="#CO_ABSTRACT_SELF">Co: Une classe abstraite d éfinit une méthode compareTo() covariante</a></td><td>Bad practice</td></tr>
68 <tr bgcolor="#ffffff"><td><a href="#CO_COMPARETO_INCORRECT_FLOATING">Co: compare To()/compare() incorrectly handles float or double value</a></td><td>Bad practic e</td></tr>
69 <tr bgcolor="#eeeeee"><td><a href="#CO_COMPARETO_RESULTS_MIN_VALUE">Co: compareT o()/compare() returns Integer.MIN_VALUE</a></td><td>Bad practice</td></tr>
67 <tr bgcolor="#ffffff"><td><a href="#CO_SELF_NO_OBJECT">Co: Définition d'une méth ode compareTo() covariante</a></td><td>Bad practice</td></tr> 70 <tr bgcolor="#ffffff"><td><a href="#CO_SELF_NO_OBJECT">Co: Définition d'une méth ode compareTo() covariante</a></td><td>Bad practice</td></tr>
68 <tr bgcolor="#eeeeee"><td><a href="#DE_MIGHT_DROP">DE: La méthode peut déclenche r une exception</a></td><td>Bad practice</td></tr> 71 <tr bgcolor="#eeeeee"><td><a href="#DE_MIGHT_DROP">DE: La méthode peut déclenche r une exception</a></td><td>Bad practice</td></tr>
69 <tr bgcolor="#ffffff"><td><a href="#DE_MIGHT_IGNORE">DE: La méthode peut ignorer une exception</a></td><td>Bad practice</td></tr> 72 <tr bgcolor="#ffffff"><td><a href="#DE_MIGHT_IGNORE">DE: La méthode peut ignorer une exception</a></td><td>Bad practice</td></tr>
70 <tr bgcolor="#eeeeee"><td><a href="#DMI_ENTRY_SETS_MAY_REUSE_ENTRY_OBJECTS">DMI: Adding elements of an entry set may fail due to reuse of Entry objects</a></td> <td>Bad practice</td></tr> 73 <tr bgcolor="#eeeeee"><td><a href="#DMI_ENTRY_SETS_MAY_REUSE_ENTRY_OBJECTS">DMI: Adding elements of an entry set may fail due to reuse of Entry objects</a></td> <td>Bad practice</td></tr>
71 <tr bgcolor="#ffffff"><td><a href="#DMI_RANDOM_USED_ONLY_ONCE">DMI: Random objec t created and used only once</a></td><td>Bad practice</td></tr> 74 <tr bgcolor="#ffffff"><td><a href="#DMI_RANDOM_USED_ONLY_ONCE">DMI: Random objec t created and used only once</a></td><td>Bad practice</td></tr>
72 <tr bgcolor="#eeeeee"><td><a href="#DMI_USING_REMOVEALL_TO_CLEAR_COLLECTION">DMI : Don't use removeAll to clear a collection</a></td><td>Bad practice</td></tr> 75 <tr bgcolor="#eeeeee"><td><a href="#DMI_USING_REMOVEALL_TO_CLEAR_COLLECTION">DMI : Don't use removeAll to clear a collection</a></td><td>Bad practice</td></tr>
73 <tr bgcolor="#ffffff"><td><a href="#DM_EXIT">Dm: La méthode invoque System.exit( ...)</a></td><td>Bad practice</td></tr> 76 <tr bgcolor="#ffffff"><td><a href="#DM_EXIT">Dm: La méthode invoque System.exit( ...)</a></td><td>Bad practice</td></tr>
74 <tr bgcolor="#eeeeee"><td><a href="#DM_RUN_FINALIZERS_ON_EXIT">Dm: Méthode invoq uant runFinalizersOnExit, l'une des plus dangeureuses méthodes des librairies Ja va</a></td><td>Bad practice</td></tr> 77 <tr bgcolor="#eeeeee"><td><a href="#DM_RUN_FINALIZERS_ON_EXIT">Dm: Méthode invoq uant runFinalizersOnExit, l'une des plus dangeureuses méthodes des librairies Ja va</a></td><td>Bad practice</td></tr>
75 <tr bgcolor="#ffffff"><td><a href="#ES_COMPARING_PARAMETER_STRING_WITH_EQ">ES: C omparison of String parameter using == or !=</a></td><td>Bad practice</td></tr> 78 <tr bgcolor="#ffffff"><td><a href="#ES_COMPARING_PARAMETER_STRING_WITH_EQ">ES: C omparison of String parameter using == or !=</a></td><td>Bad practice</td></tr>
76 <tr bgcolor="#eeeeee"><td><a href="#ES_COMPARING_STRINGS_WITH_EQ">ES: Comparaiso n d'objets String utilisant == ou !=</a></td><td>Bad practice</td></tr> 79 <tr bgcolor="#eeeeee"><td><a href="#ES_COMPARING_STRINGS_WITH_EQ">ES: Comparaiso n d'objets String utilisant == ou !=</a></td><td>Bad practice</td></tr>
(...skipping 15 matching lines...) Expand all
92 <tr bgcolor="#eeeeee"><td><a href="#HE_EQUALS_USE_HASHCODE">HE: La classe défini t equals() et utilise Object.hashCode()</a></td><td>Bad practice</td></tr> 95 <tr bgcolor="#eeeeee"><td><a href="#HE_EQUALS_USE_HASHCODE">HE: La classe défini t equals() et utilise Object.hashCode()</a></td><td>Bad practice</td></tr>
93 <tr bgcolor="#ffffff"><td><a href="#HE_HASHCODE_NO_EQUALS">HE: La classe définit hashCode() mais pas equals()</a></td><td>Bad practice</td></tr> 96 <tr bgcolor="#ffffff"><td><a href="#HE_HASHCODE_NO_EQUALS">HE: La classe définit hashCode() mais pas equals()</a></td><td>Bad practice</td></tr>
94 <tr bgcolor="#eeeeee"><td><a href="#HE_HASHCODE_USE_OBJECT_EQUALS">HE: La classe définit hashCode() et utilise Object.equals()</a></td><td>Bad practice</td></tr > 97 <tr bgcolor="#eeeeee"><td><a href="#HE_HASHCODE_USE_OBJECT_EQUALS">HE: La classe définit hashCode() et utilise Object.equals()</a></td><td>Bad practice</td></tr >
95 <tr bgcolor="#ffffff"><td><a href="#HE_INHERITS_EQUALS_USE_HASHCODE">HE: La clas se hérite de equals() et utilise Object.hashCode()</a></td><td>Bad practice</td> </tr> 98 <tr bgcolor="#ffffff"><td><a href="#HE_INHERITS_EQUALS_USE_HASHCODE">HE: La clas se hérite de equals() et utilise Object.hashCode()</a></td><td>Bad practice</td> </tr>
96 <tr bgcolor="#eeeeee"><td><a href="#IC_SUPERCLASS_USES_SUBCLASS_DURING_INITIALIZ ATION">IC: Classe mère utilisant une sous-classe durant son initialisation</a></ td><td>Bad practice</td></tr> 99 <tr bgcolor="#eeeeee"><td><a href="#IC_SUPERCLASS_USES_SUBCLASS_DURING_INITIALIZ ATION">IC: Classe mère utilisant une sous-classe durant son initialisation</a></ td><td>Bad practice</td></tr>
97 <tr bgcolor="#ffffff"><td><a href="#IMSE_DONT_CATCH_IMSE">IMSE: Interception dou teuse d'une IllegalMonitorStateException</a></td><td>Bad practice</td></tr> 100 <tr bgcolor="#ffffff"><td><a href="#IMSE_DONT_CATCH_IMSE">IMSE: Interception dou teuse d'une IllegalMonitorStateException</a></td><td>Bad practice</td></tr>
98 <tr bgcolor="#eeeeee"><td><a href="#ISC_INSTANTIATE_STATIC_CLASS">ISC: Instantia tion inutile d'une classe qui n'a que des méthodes statiques</a></td><td>Bad pra ctice</td></tr> 101 <tr bgcolor="#eeeeee"><td><a href="#ISC_INSTANTIATE_STATIC_CLASS">ISC: Instantia tion inutile d'une classe qui n'a que des méthodes statiques</a></td><td>Bad pra ctice</td></tr>
99 <tr bgcolor="#ffffff"><td><a href="#IT_NO_SUCH_ELEMENT">It: La méthode next() de Iterator ne peut pas déclencher une exception NoSuchElement</a></td><td>Bad pra ctice</td></tr> 102 <tr bgcolor="#ffffff"><td><a href="#IT_NO_SUCH_ELEMENT">It: La méthode next() de Iterator ne peut pas déclencher une exception NoSuchElement</a></td><td>Bad pra ctice</td></tr>
100 <tr bgcolor="#eeeeee"><td><a href="#J2EE_STORE_OF_NON_SERIALIZABLE_OBJECT_INTO_S ESSION">J2EE: Stockage d'un objet non serialisable dans une session Http</a></td ><td>Bad practice</td></tr> 103 <tr bgcolor="#eeeeee"><td><a href="#J2EE_STORE_OF_NON_SERIALIZABLE_OBJECT_INTO_S ESSION">J2EE: Stockage d'un objet non serialisable dans une session Http</a></td ><td>Bad practice</td></tr>
101 <tr bgcolor="#ffffff"><td><a href="#JCIP_FIELD_ISNT_FINAL_IN_IMMUTABLE_CLASS">JC IP: Les champs d'une classe immuable devraient être finaux.</a></td><td>Bad prac tice</td></tr> 104 <tr bgcolor="#ffffff"><td><a href="#JCIP_FIELD_ISNT_FINAL_IN_IMMUTABLE_CLASS">JC IP: Les champs d'une classe immuable devraient être finaux.</a></td><td>Bad prac tice</td></tr>
105 <tr bgcolor="#eeeeee"><td><a href="#ME_ENUM_FIELD_SETTER">ME: Public enum method unconditionally sets its field</a></td><td>Bad practice</td></tr>
106 <tr bgcolor="#ffffff"><td><a href="#ME_MUTABLE_ENUM_FIELD">ME: Enum field is pub lic and mutable</a></td><td>Bad practice</td></tr>
102 <tr bgcolor="#eeeeee"><td><a href="#NP_BOOLEAN_RETURN_NULL">NP: Method with Bool ean return type returns explicit null</a></td><td>Bad practice</td></tr> 107 <tr bgcolor="#eeeeee"><td><a href="#NP_BOOLEAN_RETURN_NULL">NP: Method with Bool ean return type returns explicit null</a></td><td>Bad practice</td></tr>
103 <tr bgcolor="#ffffff"><td><a href="#NP_CLONE_COULD_RETURN_NULL">NP: Clone method may return null</a></td><td>Bad practice</td></tr> 108 <tr bgcolor="#ffffff"><td><a href="#NP_CLONE_COULD_RETURN_NULL">NP: Clone method may return null</a></td><td>Bad practice</td></tr>
104 <tr bgcolor="#eeeeee"><td><a href="#NP_EQUALS_SHOULD_HANDLE_NULL_ARGUMENT">NP: M éthode equals() ne vérifiant pas la nullité</a></td><td>Bad practice</td></tr> 109 <tr bgcolor="#eeeeee"><td><a href="#NP_EQUALS_SHOULD_HANDLE_NULL_ARGUMENT">NP: M éthode equals() ne vérifiant pas la nullité</a></td><td>Bad practice</td></tr>
105 <tr bgcolor="#ffffff"><td><a href="#NP_TOSTRING_COULD_RETURN_NULL">NP: toString method may return null</a></td><td>Bad practice</td></tr> 110 <tr bgcolor="#ffffff"><td><a href="#NP_TOSTRING_COULD_RETURN_NULL">NP: toString method may return null</a></td><td>Bad practice</td></tr>
106 <tr bgcolor="#eeeeee"><td><a href="#NM_CLASS_NAMING_CONVENTION">Nm: Nom de class e devant commencer par une majuscule</a></td><td>Bad practice</td></tr> 111 <tr bgcolor="#eeeeee"><td><a href="#NM_CLASS_NAMING_CONVENTION">Nm: Nom de class e devant commencer par une majuscule</a></td><td>Bad practice</td></tr>
107 <tr bgcolor="#ffffff"><td><a href="#NM_CLASS_NOT_EXCEPTION">Nm: Cette classe ne dérive pas d'Exception, même si son nom le sous-entend</a></td><td>Bad practice< /td></tr> 112 <tr bgcolor="#ffffff"><td><a href="#NM_CLASS_NOT_EXCEPTION">Nm: Cette classe ne dérive pas d'Exception, même si son nom le sous-entend</a></td><td>Bad practice< /td></tr>
108 <tr bgcolor="#eeeeee"><td><a href="#NM_CONFUSING">Nm: Noms de méthodes ambigus</ a></td><td>Bad practice</td></tr> 113 <tr bgcolor="#eeeeee"><td><a href="#NM_CONFUSING">Nm: Noms de méthodes ambigus</ a></td><td>Bad practice</td></tr>
109 <tr bgcolor="#ffffff"><td><a href="#NM_FIELD_NAMING_CONVENTION">Nm: Nom de champ devant commencer par une minuscule</a></td><td>Bad practice</td></tr> 114 <tr bgcolor="#ffffff"><td><a href="#NM_FIELD_NAMING_CONVENTION">Nm: Nom de champ devant commencer par une minuscule</a></td><td>Bad practice</td></tr>
110 <tr bgcolor="#eeeeee"><td><a href="#NM_FUTURE_KEYWORD_USED_AS_IDENTIFIER">Nm: Us e of identifier that is a keyword in later versions of Java</a></td><td>Bad prac tice</td></tr> 115 <tr bgcolor="#eeeeee"><td><a href="#NM_FUTURE_KEYWORD_USED_AS_IDENTIFIER">Nm: Us e of identifier that is a keyword in later versions of Java</a></td><td>Bad prac tice</td></tr>
111 <tr bgcolor="#ffffff"><td><a href="#NM_FUTURE_KEYWORD_USED_AS_MEMBER_IDENTIFIER" >Nm: Use of identifier that is a keyword in later versions of Java</a></td><td>B ad practice</td></tr> 116 <tr bgcolor="#ffffff"><td><a href="#NM_FUTURE_KEYWORD_USED_AS_MEMBER_IDENTIFIER" >Nm: Use of identifier that is a keyword in later versions of Java</a></td><td>B ad practice</td></tr>
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
145 <tr bgcolor="#ffffff"><td><a href="#BC_IMPOSSIBLE_DOWNCAST">BC: Impossible downc ast</a></td><td>Correctness</td></tr> 150 <tr bgcolor="#ffffff"><td><a href="#BC_IMPOSSIBLE_DOWNCAST">BC: Impossible downc ast</a></td><td>Correctness</td></tr>
146 <tr bgcolor="#eeeeee"><td><a href="#BC_IMPOSSIBLE_DOWNCAST_OF_TOARRAY">BC: Impos sible downcast of toArray() result</a></td><td>Correctness</td></tr> 151 <tr bgcolor="#eeeeee"><td><a href="#BC_IMPOSSIBLE_DOWNCAST_OF_TOARRAY">BC: Impos sible downcast of toArray() result</a></td><td>Correctness</td></tr>
147 <tr bgcolor="#ffffff"><td><a href="#BC_IMPOSSIBLE_INSTANCEOF">BC: instanceof ren verra toujours faux</a></td><td>Correctness</td></tr> 152 <tr bgcolor="#ffffff"><td><a href="#BC_IMPOSSIBLE_INSTANCEOF">BC: instanceof ren verra toujours faux</a></td><td>Correctness</td></tr>
148 <tr bgcolor="#eeeeee"><td><a href="#BIT_ADD_OF_SIGNED_BYTE">BIT: Bitwise add of signed byte value</a></td><td>Correctness</td></tr> 153 <tr bgcolor="#eeeeee"><td><a href="#BIT_ADD_OF_SIGNED_BYTE">BIT: Bitwise add of signed byte value</a></td><td>Correctness</td></tr>
149 <tr bgcolor="#ffffff"><td><a href="#BIT_AND">BIT: Masques binaires incompatibles </a></td><td>Correctness</td></tr> 154 <tr bgcolor="#ffffff"><td><a href="#BIT_AND">BIT: Masques binaires incompatibles </a></td><td>Correctness</td></tr>
150 <tr bgcolor="#eeeeee"><td><a href="#BIT_AND_ZZ">BIT: Masques binaires incompatib les</a></td><td>Correctness</td></tr> 155 <tr bgcolor="#eeeeee"><td><a href="#BIT_AND_ZZ">BIT: Masques binaires incompatib les</a></td><td>Correctness</td></tr>
151 <tr bgcolor="#ffffff"><td><a href="#BIT_IOR">BIT: Masques binaires incompatibles </a></td><td>Correctness</td></tr> 156 <tr bgcolor="#ffffff"><td><a href="#BIT_IOR">BIT: Masques binaires incompatibles </a></td><td>Correctness</td></tr>
152 <tr bgcolor="#eeeeee"><td><a href="#BIT_IOR_OF_SIGNED_BYTE">BIT: Ou binaire d'un octet signé</a></td><td>Correctness</td></tr> 157 <tr bgcolor="#eeeeee"><td><a href="#BIT_IOR_OF_SIGNED_BYTE">BIT: Ou binaire d'un octet signé</a></td><td>Correctness</td></tr>
153 <tr bgcolor="#ffffff"><td><a href="#BIT_SIGNED_CHECK_HIGH_BIT">BIT: Check for si gn of bitwise operation</a></td><td>Correctness</td></tr> 158 <tr bgcolor="#ffffff"><td><a href="#BIT_SIGNED_CHECK_HIGH_BIT">BIT: Check for si gn of bitwise operation</a></td><td>Correctness</td></tr>
154 <tr bgcolor="#eeeeee"><td><a href="#BOA_BADLY_OVERRIDDEN_ADAPTER">BOA: La classe surcharge mal une méthode implémentée dans une superclasse Adapter</a></td><td> Correctness</td></tr> 159 <tr bgcolor="#eeeeee"><td><a href="#BOA_BADLY_OVERRIDDEN_ADAPTER">BOA: La classe surcharge mal une méthode implémentée dans une superclasse Adapter</a></td><td> Correctness</td></tr>
155 <tr bgcolor="#ffffff"><td><a href="#ICAST_BAD_SHIFT_AMOUNT">BSHIFT: Décalage d'u n int hors de proportion (0..31)</a></td><td>Correctness</td></tr> 160 <tr bgcolor="#ffffff"><td><a href="#BSHIFT_WRONG_ADD_PRIORITY">BSHIFT: Possible bad parsing of shift operation</a></td><td>Correctness</td></tr>
156 <tr bgcolor="#eeeeee"><td><a href="#BX_UNBOXED_AND_COERCED_FOR_TERNARY_OPERATOR" >Bx: Primitive value is unboxed and coerced for ternary operator</a></td><td>Cor rectness</td></tr> 161 <tr bgcolor="#eeeeee"><td><a href="#ICAST_BAD_SHIFT_AMOUNT">BSHIFT: Décalage d'u n int hors de proportion (0..31)</a></td><td>Correctness</td></tr>
157 <tr bgcolor="#ffffff"><td><a href="#CO_COMPARETO_RESULTS_MIN_VALUE">Co: compareT o()/compare() returns Integer.MIN_VALUE</a></td><td>Correctness</td></tr> 162 <tr bgcolor="#ffffff"><td><a href="#DLS_DEAD_LOCAL_INCREMENT_IN_RETURN">DLS: Use less increment in return statement</a></td><td>Correctness</td></tr>
158 <tr bgcolor="#eeeeee"><td><a href="#DLS_DEAD_LOCAL_INCREMENT_IN_RETURN">DLS: Use less increment in return statement</a></td><td>Correctness</td></tr> 163 <tr bgcolor="#eeeeee"><td><a href="#DLS_DEAD_STORE_OF_CLASS_LITERAL">DLS: Dead s tore of class literal</a></td><td>Correctness</td></tr>
159 <tr bgcolor="#ffffff"><td><a href="#DLS_DEAD_STORE_OF_CLASS_LITERAL">DLS: Dead s tore of class literal</a></td><td>Correctness</td></tr> 164 <tr bgcolor="#ffffff"><td><a href="#DLS_OVERWRITTEN_INCREMENT">DLS: Incrémentati on annulée</a></td><td>Correctness</td></tr>
160 <tr bgcolor="#eeeeee"><td><a href="#DLS_OVERWRITTEN_INCREMENT">DLS: Incrémentati on annulée</a></td><td>Correctness</td></tr> 165 <tr bgcolor="#eeeeee"><td><a href="#DMI_ARGUMENTS_WRONG_ORDER">DMI: Reversed met hod arguments</a></td><td>Correctness</td></tr>
161 <tr bgcolor="#ffffff"><td><a href="#DMI_ARGUMENTS_WRONG_ORDER">DMI: Reversed met hod arguments</a></td><td>Correctness</td></tr> 166 <tr bgcolor="#ffffff"><td><a href="#DMI_BAD_MONTH">DMI: Valeur constante pour un mois en dehors de l'intervalle attendu de 0 à 11</a></td><td>Correctness</td></ tr>
162 <tr bgcolor="#eeeeee"><td><a href="#DMI_BAD_MONTH">DMI: Valeur constante pour un mois en dehors de l'intervalle attendu de 0 à 11</a></td><td>Correctness</td></ tr> 167 <tr bgcolor="#eeeeee"><td><a href="#DMI_BIGDECIMAL_CONSTRUCTED_FROM_DOUBLE">DMI: BigDecimal constructed from double that isn't represented precisely</a></td><td >Correctness</td></tr>
163 <tr bgcolor="#ffffff"><td><a href="#DMI_BIGDECIMAL_CONSTRUCTED_FROM_DOUBLE">DMI: BigDecimal constructed from double that isn't represented precisely</a></td><td >Correctness</td></tr> 168 <tr bgcolor="#ffffff"><td><a href="#DMI_CALLING_NEXT_FROM_HASNEXT">DMI: Méthode hasNext() appelant next()</a></td><td>Correctness</td></tr>
164 <tr bgcolor="#eeeeee"><td><a href="#DMI_CALLING_NEXT_FROM_HASNEXT">DMI: Méthode hasNext() appelant next()</a></td><td>Correctness</td></tr> 169 <tr bgcolor="#eeeeee"><td><a href="#DMI_COLLECTIONS_SHOULD_NOT_CONTAIN_THEMSELVE S">DMI: Collections should not contain themselves</a></td><td>Correctness</td></ tr>
165 <tr bgcolor="#ffffff"><td><a href="#DMI_COLLECTIONS_SHOULD_NOT_CONTAIN_THEMSELVE S">DMI: Collections should not contain themselves</a></td><td>Correctness</td></ tr> 170 <tr bgcolor="#ffffff"><td><a href="#DMI_DOH">DMI: D'oh! A nonsensical method inv ocation</a></td><td>Correctness</td></tr>
166 <tr bgcolor="#eeeeee"><td><a href="#DMI_DOH">DMI: D'oh! A nonsensical method inv ocation</a></td><td>Correctness</td></tr> 171 <tr bgcolor="#eeeeee"><td><a href="#DMI_INVOKING_HASHCODE_ON_ARRAY">DMI: Invocat ion of hashCode on an array</a></td><td>Correctness</td></tr>
167 <tr bgcolor="#ffffff"><td><a href="#DMI_INVOKING_HASHCODE_ON_ARRAY">DMI: Invocat ion of hashCode on an array</a></td><td>Correctness</td></tr> 172 <tr bgcolor="#ffffff"><td><a href="#DMI_LONG_BITS_TO_DOUBLE_INVOKED_ON_INT">DMI: Double.longBitsToDouble invoked on an int</a></td><td>Correctness</td></tr>
168 <tr bgcolor="#eeeeee"><td><a href="#DMI_LONG_BITS_TO_DOUBLE_INVOKED_ON_INT">DMI: Double.longBitsToDouble invoked on an int</a></td><td>Correctness</td></tr> 173 <tr bgcolor="#eeeeee"><td><a href="#DMI_VACUOUS_SELF_COLLECTION_CALL">DMI: Vacuo us call to collections</a></td><td>Correctness</td></tr>
169 <tr bgcolor="#ffffff"><td><a href="#DMI_VACUOUS_SELF_COLLECTION_CALL">DMI: Vacuo us call to collections</a></td><td>Correctness</td></tr> 174 <tr bgcolor="#ffffff"><td><a href="#DMI_ANNOTATION_IS_NOT_VISIBLE_TO_REFLECTION" >Dm: La réflexion ne peut pas être utilisée pour vérifier la présence d'une anno tation avec la rétention par défaut</a></td><td>Correctness</td></tr>
170 <tr bgcolor="#eeeeee"><td><a href="#DMI_ANNOTATION_IS_NOT_VISIBLE_TO_REFLECTION" >Dm: La réflexion ne peut pas être utilisée pour vérifier la présence d'une anno tation avec la rétention par défaut</a></td><td>Correctness</td></tr> 175 <tr bgcolor="#eeeeee"><td><a href="#DMI_FUTILE_ATTEMPT_TO_CHANGE_MAXPOOL_SIZE_OF _SCHEDULED_THREAD_POOL_EXECUTOR">Dm: Futile attempt to change max pool size of S cheduledThreadPoolExecutor</a></td><td>Correctness</td></tr>
171 <tr bgcolor="#ffffff"><td><a href="#DMI_FUTILE_ATTEMPT_TO_CHANGE_MAXPOOL_SIZE_OF _SCHEDULED_THREAD_POOL_EXECUTOR">Dm: Futile attempt to change max pool size of S cheduledThreadPoolExecutor</a></td><td>Correctness</td></tr> 176 <tr bgcolor="#ffffff"><td><a href="#DMI_SCHEDULED_THREAD_POOL_EXECUTOR_WITH_ZERO _CORE_THREADS">Dm: Creation of ScheduledThreadPoolExecutor with zero core thread s</a></td><td>Correctness</td></tr>
172 <tr bgcolor="#eeeeee"><td><a href="#DMI_SCHEDULED_THREAD_POOL_EXECUTOR_WITH_ZERO _CORE_THREADS">Dm: Creation of ScheduledThreadPoolExecutor with zero core thread s</a></td><td>Correctness</td></tr> 177 <tr bgcolor="#eeeeee"><td><a href="#DMI_VACUOUS_CALL_TO_EASYMOCK_METHOD">Dm: Use less/vacuous call to EasyMock method</a></td><td>Correctness</td></tr>
173 <tr bgcolor="#ffffff"><td><a href="#DMI_VACUOUS_CALL_TO_EASYMOCK_METHOD">Dm: Use less/vacuous call to EasyMock method</a></td><td>Correctness</td></tr> 178 <tr bgcolor="#ffffff"><td><a href="#DM_INVALID_MIN_MAX">Dm: Incorrect combinatio n of Math.max and Math.min</a></td><td>Correctness</td></tr>
174 <tr bgcolor="#eeeeee"><td><a href="#EC_ARRAY_AND_NONARRAY">EC: Utilisation de eq uals() pour comparer un tableau et un objet</a></td><td>Correctness</td></tr> 179 <tr bgcolor="#eeeeee"><td><a href="#EC_ARRAY_AND_NONARRAY">EC: Utilisation de eq uals() pour comparer un tableau et un objet</a></td><td>Correctness</td></tr>
175 <tr bgcolor="#ffffff"><td><a href="#EC_BAD_ARRAY_COMPARE">EC: Appel à equals() s ur un tableau équivalent à ==</a></td><td>Correctness</td></tr> 180 <tr bgcolor="#ffffff"><td><a href="#EC_BAD_ARRAY_COMPARE">EC: Appel à equals() s ur un tableau équivalent à ==</a></td><td>Correctness</td></tr>
176 <tr bgcolor="#eeeeee"><td><a href="#EC_INCOMPATIBLE_ARRAY_COMPARE">EC: equals(.. .) used to compare incompatible arrays</a></td><td>Correctness</td></tr> 181 <tr bgcolor="#eeeeee"><td><a href="#EC_INCOMPATIBLE_ARRAY_COMPARE">EC: equals(.. .) used to compare incompatible arrays</a></td><td>Correctness</td></tr>
177 <tr bgcolor="#ffffff"><td><a href="#EC_NULL_ARG">EC: Appel de equals() avec un a rgument à null</a></td><td>Correctness</td></tr> 182 <tr bgcolor="#ffffff"><td><a href="#EC_NULL_ARG">EC: Appel de equals() avec un a rgument à null</a></td><td>Correctness</td></tr>
178 <tr bgcolor="#eeeeee"><td><a href="#EC_UNRELATED_CLASS_AND_INTERFACE">EC: Appel de equals() comparant une classe et une interface sans relation</a></td><td>Corr ectness</td></tr> 183 <tr bgcolor="#eeeeee"><td><a href="#EC_UNRELATED_CLASS_AND_INTERFACE">EC: Appel de equals() comparant une classe et une interface sans relation</a></td><td>Corr ectness</td></tr>
179 <tr bgcolor="#ffffff"><td><a href="#EC_UNRELATED_INTERFACES">EC: Appel de equals () comparant différentes interfaces</a></td><td>Correctness</td></tr> 184 <tr bgcolor="#ffffff"><td><a href="#EC_UNRELATED_INTERFACES">EC: Appel de equals () comparant différentes interfaces</a></td><td>Correctness</td></tr>
180 <tr bgcolor="#eeeeee"><td><a href="#EC_UNRELATED_TYPES">EC: Appel de equals() co mparant des types différents</a></td><td>Correctness</td></tr> 185 <tr bgcolor="#eeeeee"><td><a href="#EC_UNRELATED_TYPES">EC: Appel de equals() co mparant des types différents</a></td><td>Correctness</td></tr>
181 <tr bgcolor="#ffffff"><td><a href="#EC_UNRELATED_TYPES_USING_POINTER_EQUALITY">E C: Using pointer equality to compare different types</a></td><td>Correctness</td ></tr> 186 <tr bgcolor="#ffffff"><td><a href="#EC_UNRELATED_TYPES_USING_POINTER_EQUALITY">E C: Using pointer equality to compare different types</a></td><td>Correctness</td ></tr>
182 <tr bgcolor="#eeeeee"><td><a href="#EQ_ALWAYS_FALSE">Eq: equals method always re turns false</a></td><td>Correctness</td></tr> 187 <tr bgcolor="#eeeeee"><td><a href="#EQ_ALWAYS_FALSE">Eq: equals method always re turns false</a></td><td>Correctness</td></tr>
183 <tr bgcolor="#ffffff"><td><a href="#EQ_ALWAYS_TRUE">Eq: equals method always ret urns true</a></td><td>Correctness</td></tr> 188 <tr bgcolor="#ffffff"><td><a href="#EQ_ALWAYS_TRUE">Eq: equals method always ret urns true</a></td><td>Correctness</td></tr>
(...skipping 21 matching lines...) Expand all
205 <tr bgcolor="#ffffff"><td><a href="#IJU_BAD_SUITE_METHOD">IJU: TestCase declares a bad suite method </a></td><td>Correctness</td></tr> 210 <tr bgcolor="#ffffff"><td><a href="#IJU_BAD_SUITE_METHOD">IJU: TestCase declares a bad suite method </a></td><td>Correctness</td></tr>
206 <tr bgcolor="#eeeeee"><td><a href="#IJU_NO_TESTS">IJU: TestCase sans tests</a></ td><td>Correctness</td></tr> 211 <tr bgcolor="#eeeeee"><td><a href="#IJU_NO_TESTS">IJU: TestCase sans tests</a></ td><td>Correctness</td></tr>
207 <tr bgcolor="#ffffff"><td><a href="#IJU_SETUP_NO_SUPER">IJU: Une classe dérivant de TestCase implémente setUp() sans appeler super.setUp()</a></td><td>Correctne ss</td></tr> 212 <tr bgcolor="#ffffff"><td><a href="#IJU_SETUP_NO_SUPER">IJU: Une classe dérivant de TestCase implémente setUp() sans appeler super.setUp()</a></td><td>Correctne ss</td></tr>
208 <tr bgcolor="#eeeeee"><td><a href="#IJU_SUITE_NOT_STATIC">IJU: Une classe dériva nt de TestCase implémente une méthode suite() non statique</a></td><td>Correctne ss</td></tr> 213 <tr bgcolor="#eeeeee"><td><a href="#IJU_SUITE_NOT_STATIC">IJU: Une classe dériva nt de TestCase implémente une méthode suite() non statique</a></td><td>Correctne ss</td></tr>
209 <tr bgcolor="#ffffff"><td><a href="#IJU_TEARDOWN_NO_SUPER">IJU: Une classe dériv ant de TestCase implémente tearDown() sans appeler super.tearDown()</a></td><td> Correctness</td></tr> 214 <tr bgcolor="#ffffff"><td><a href="#IJU_TEARDOWN_NO_SUPER">IJU: Une classe dériv ant de TestCase implémente tearDown() sans appeler super.tearDown()</a></td><td> Correctness</td></tr>
210 <tr bgcolor="#eeeeee"><td><a href="#IL_CONTAINER_ADDED_TO_ITSELF">IL: Un contene ur est ajouté à lui-même</a></td><td>Correctness</td></tr> 215 <tr bgcolor="#eeeeee"><td><a href="#IL_CONTAINER_ADDED_TO_ITSELF">IL: Un contene ur est ajouté à lui-même</a></td><td>Correctness</td></tr>
211 <tr bgcolor="#ffffff"><td><a href="#IL_INFINITE_LOOP">IL: Boucle apparemment ini finie</a></td><td>Correctness</td></tr> 216 <tr bgcolor="#ffffff"><td><a href="#IL_INFINITE_LOOP">IL: Boucle apparemment ini finie</a></td><td>Correctness</td></tr>
212 <tr bgcolor="#eeeeee"><td><a href="#IL_INFINITE_RECURSIVE_LOOP">IL: Boucle récur sive infinie</a></td><td>Correctness</td></tr> 217 <tr bgcolor="#eeeeee"><td><a href="#IL_INFINITE_RECURSIVE_LOOP">IL: Boucle récur sive infinie</a></td><td>Correctness</td></tr>
213 <tr bgcolor="#ffffff"><td><a href="#IM_MULTIPLYING_RESULT_OF_IREM">IM: Multiplic ation d'un entier avec le résulat entier d'un modulo</a></td><td>Correctness</td ></tr> 218 <tr bgcolor="#ffffff"><td><a href="#IM_MULTIPLYING_RESULT_OF_IREM">IM: Multiplic ation d'un entier avec le résulat entier d'un modulo</a></td><td>Correctness</td ></tr>
214 <tr bgcolor="#eeeeee"><td><a href="#INT_BAD_COMPARISON_WITH_INT_VALUE">INT: Bad comparison of int value with long constant</a></td><td>Correctness</td></tr> 219 <tr bgcolor="#eeeeee"><td><a href="#INT_BAD_COMPARISON_WITH_INT_VALUE">INT: Bad comparison of int value with long constant</a></td><td>Correctness</td></tr>
215 <tr bgcolor="#ffffff"><td><a href="#INT_BAD_COMPARISON_WITH_NONNEGATIVE_VALUE">I NT: Bad comparison of nonnegative value with negative constant</a></td><td>Corre ctness</td></tr> 220 <tr bgcolor="#ffffff"><td><a href="#INT_BAD_COMPARISON_WITH_NONNEGATIVE_VALUE">I NT: Bad comparison of nonnegative value with negative constant or zero</a></td>< td>Correctness</td></tr>
216 <tr bgcolor="#eeeeee"><td><a href="#INT_BAD_COMPARISON_WITH_SIGNED_BYTE">INT: Ba d comparison of signed byte</a></td><td>Correctness</td></tr> 221 <tr bgcolor="#eeeeee"><td><a href="#INT_BAD_COMPARISON_WITH_SIGNED_BYTE">INT: Ba d comparison of signed byte</a></td><td>Correctness</td></tr>
217 <tr bgcolor="#ffffff"><td><a href="#IO_APPENDING_TO_OBJECT_OUTPUT_STREAM">IO: Do omed attempt to append to an object output stream</a></td><td>Correctness</td></ tr> 222 <tr bgcolor="#ffffff"><td><a href="#IO_APPENDING_TO_OBJECT_OUTPUT_STREAM">IO: Do omed attempt to append to an object output stream</a></td><td>Correctness</td></ tr>
218 <tr bgcolor="#eeeeee"><td><a href="#IP_PARAMETER_IS_DEAD_BUT_OVERWRITTEN">IP: Un paramètre est ré-écrit avant d'être utilisé</a></td><td>Correctness</td></tr> 223 <tr bgcolor="#eeeeee"><td><a href="#IP_PARAMETER_IS_DEAD_BUT_OVERWRITTEN">IP: Un paramètre est ré-écrit avant d'être utilisé</a></td><td>Correctness</td></tr>
219 <tr bgcolor="#ffffff"><td><a href="#MF_CLASS_MASKS_FIELD">MF: La classe définit un champ qui masque un champ d'une classe mère</a></td><td>Correctness</td></tr> 224 <tr bgcolor="#ffffff"><td><a href="#MF_CLASS_MASKS_FIELD">MF: La classe définit un champ qui masque un champ d'une classe mère</a></td><td>Correctness</td></tr>
220 <tr bgcolor="#eeeeee"><td><a href="#MF_METHOD_MASKS_FIELD">MF: La méthode défini t une variable qui masque un champ</a></td><td>Correctness</td></tr> 225 <tr bgcolor="#eeeeee"><td><a href="#MF_METHOD_MASKS_FIELD">MF: La méthode défini t une variable qui masque un champ</a></td><td>Correctness</td></tr>
221 <tr bgcolor="#ffffff"><td><a href="#NP_ALWAYS_NULL">NP: Déréférencement d'un poi nteur null dans la méthode</a></td><td>Correctness</td></tr> 226 <tr bgcolor="#ffffff"><td><a href="#NP_ALWAYS_NULL">NP: Déréférencement d'un poi nteur null dans la méthode</a></td><td>Correctness</td></tr>
222 <tr bgcolor="#eeeeee"><td><a href="#NP_ALWAYS_NULL_EXCEPTION">NP: Déréférencemen t d'un pointeur null dans le chemin d'exception d'une méthode</a></td><td>Correc tness</td></tr> 227 <tr bgcolor="#eeeeee"><td><a href="#NP_ALWAYS_NULL_EXCEPTION">NP: Déréférencemen t d'un pointeur null dans le chemin d'exception d'une méthode</a></td><td>Correc tness</td></tr>
223 <tr bgcolor="#ffffff"><td><a href="#NP_ARGUMENT_MIGHT_BE_NULL">NP: Méthode ne te stant pas les paramètres à null</a></td><td>Correctness</td></tr> 228 <tr bgcolor="#ffffff"><td><a href="#NP_ARGUMENT_MIGHT_BE_NULL">NP: Méthode ne te stant pas les paramètres à null</a></td><td>Correctness</td></tr>
224 <tr bgcolor="#eeeeee"><td><a href="#NP_CLOSING_NULL">NP: close() invoked on a va lue that is always null</a></td><td>Correctness</td></tr> 229 <tr bgcolor="#eeeeee"><td><a href="#NP_CLOSING_NULL">NP: close() invoked on a va lue that is always null</a></td><td>Correctness</td></tr>
225 <tr bgcolor="#ffffff"><td><a href="#NP_GUARANTEED_DEREF">NP: Null déréférencé</a ></td><td>Correctness</td></tr> 230 <tr bgcolor="#ffffff"><td><a href="#NP_GUARANTEED_DEREF">NP: Null déréférencé</a ></td><td>Correctness</td></tr>
226 <tr bgcolor="#eeeeee"><td><a href="#NP_GUARANTEED_DEREF_ON_EXCEPTION_PATH">NP: V alue is null and guaranteed to be dereferenced on exception path</a></td><td>Cor rectness</td></tr> 231 <tr bgcolor="#eeeeee"><td><a href="#NP_GUARANTEED_DEREF_ON_EXCEPTION_PATH">NP: V alue is null and guaranteed to be dereferenced on exception path</a></td><td>Cor rectness</td></tr>
227 <tr bgcolor="#ffffff"><td><a href="#NP_NONNULL_FIELD_NOT_INITIALIZED_IN_CONSTRUC TOR">NP: Nonnull field is not initialized</a></td><td>Correctness</td></tr> 232 <tr bgcolor="#ffffff"><td><a href="#NP_NONNULL_FIELD_NOT_INITIALIZED_IN_CONSTRUC TOR">NP: Non-null field is not initialized</a></td><td>Correctness</td></tr>
228 <tr bgcolor="#eeeeee"><td><a href="#NP_NONNULL_PARAM_VIOLATION">NP: Appel de mét hode transmettant null à un paramètre déclaré @NonNull</a></td><td>Correctness</ td></tr> 233 <tr bgcolor="#eeeeee"><td><a href="#NP_NONNULL_PARAM_VIOLATION">NP: Appel de mét hode transmettant null à un paramètre déclaré @NonNull</a></td><td>Correctness</ td></tr>
229 <tr bgcolor="#ffffff"><td><a href="#NP_NONNULL_RETURN_VIOLATION">NP: Méthode ren voyer null mais déclarée @NonNull</a></td><td>Correctness</td></tr> 234 <tr bgcolor="#ffffff"><td><a href="#NP_NONNULL_RETURN_VIOLATION">NP: Méthode ren voyer null mais déclarée @NonNull</a></td><td>Correctness</td></tr>
230 <tr bgcolor="#eeeeee"><td><a href="#NP_NULL_INSTANCEOF">NP: A known null value i s checked to see if it is an instance of a type</a></td><td>Correctness</td></tr > 235 <tr bgcolor="#eeeeee"><td><a href="#NP_NULL_INSTANCEOF">NP: A known null value i s checked to see if it is an instance of a type</a></td><td>Correctness</td></tr >
231 <tr bgcolor="#ffffff"><td><a href="#NP_NULL_ON_SOME_PATH">NP: Possible déréféren cement d'un pointeur null dans une méthode</a></td><td>Correctness</td></tr> 236 <tr bgcolor="#ffffff"><td><a href="#NP_NULL_ON_SOME_PATH">NP: Possible déréféren cement d'un pointeur null dans une méthode</a></td><td>Correctness</td></tr>
232 <tr bgcolor="#eeeeee"><td><a href="#NP_NULL_ON_SOME_PATH_EXCEPTION">NP: Possible déréférencement d'un pointeur null dans le chemin d'exception d'une méthode</a> </td><td>Correctness</td></tr> 237 <tr bgcolor="#eeeeee"><td><a href="#NP_NULL_ON_SOME_PATH_EXCEPTION">NP: Possible déréférencement d'un pointeur null dans le chemin d'exception d'une méthode</a> </td><td>Correctness</td></tr>
233 <tr bgcolor="#ffffff"><td><a href="#NP_NULL_PARAM_DEREF">NP: Méthode passant nul l à un paramètre déréférencé inconditionnellement</a></td><td>Correctness</td></ tr> 238 <tr bgcolor="#ffffff"><td><a href="#NP_NULL_PARAM_DEREF">NP: Méthode passant nul l à un paramètre déréférencé inconditionnellement</a></td><td>Correctness</td></ tr>
234 <tr bgcolor="#eeeeee"><td><a href="#NP_NULL_PARAM_DEREF_ALL_TARGETS_DANGEROUS">N P: Appel de méthode passant null à un paramètre déréférencé inconditionnellement </a></td><td>Correctness</td></tr> 239 <tr bgcolor="#eeeeee"><td><a href="#NP_NULL_PARAM_DEREF_ALL_TARGETS_DANGEROUS">N P: Appel de méthode passant null à un paramètre déréférencé inconditionnellement </a></td><td>Correctness</td></tr>
235 <tr bgcolor="#ffffff"><td><a href="#NP_NULL_PARAM_DEREF_NONVIRTUAL">NP: Appel à une méthode non virtuelle passant null à un paramètre déréférencé de façon incon ditionnelle</a></td><td>Correctness</td></tr> 240 <tr bgcolor="#ffffff"><td><a href="#NP_NULL_PARAM_DEREF_NONVIRTUAL">NP: Appel à une méthode non virtuelle passant null à un paramètre déréférencé de façon incon ditionnelle</a></td><td>Correctness</td></tr>
236 <tr bgcolor="#eeeeee"><td><a href="#NP_OPTIONAL_RETURN_NULL">NP: Method with Opt ional return type returns explicit null</a></td><td>Correctness</td></tr> 241 <tr bgcolor="#eeeeee"><td><a href="#NP_OPTIONAL_RETURN_NULL">NP: Method with Opt ional return type returns explicit null</a></td><td>Correctness</td></tr>
237 <tr bgcolor="#ffffff"><td><a href="#NP_STORE_INTO_NONNULL_FIELD">NP: Stocke une valeur null dans un champ annoté NonNull</a></td><td>Correctness</td></tr> 242 <tr bgcolor="#ffffff"><td><a href="#NP_STORE_INTO_NONNULL_FIELD">NP: Stocke une valeur null dans un champ annoté NonNull</a></td><td>Correctness</td></tr>
238 <tr bgcolor="#eeeeee"><td><a href="#NP_UNWRITTEN_FIELD">NP: Lecture d'un champ j amais écrit</a></td><td>Correctness</td></tr> 243 <tr bgcolor="#eeeeee"><td><a href="#NP_UNWRITTEN_FIELD">NP: Lecture d'un champ j amais écrit</a></td><td>Correctness</td></tr>
239 <tr bgcolor="#ffffff"><td><a href="#NM_BAD_EQUAL">Nm: La classe définit equal() ; ne devrait-ce pas être equals() ?</a></td><td>Correctness</td></tr> 244 <tr bgcolor="#ffffff"><td><a href="#NM_BAD_EQUAL">Nm: La classe définit equal() ; ne devrait-ce pas être equals() ?</a></td><td>Correctness</td></tr>
240 <tr bgcolor="#eeeeee"><td><a href="#NM_LCASE_HASHCODE">Nm: La classe définit has hcode() ; ne devrait-ce pas être hashCode() ?</a></td><td>Correctness</td></tr> 245 <tr bgcolor="#eeeeee"><td><a href="#NM_LCASE_HASHCODE">Nm: La classe définit has hcode() ; ne devrait-ce pas être hashCode() ?</a></td><td>Correctness</td></tr>
241 <tr bgcolor="#ffffff"><td><a href="#NM_LCASE_TOSTRING">Nm: La classe définit tos tring() ; ne devrait-ce pas être toString() ?</a></td><td>Correctness</td></tr> 246 <tr bgcolor="#ffffff"><td><a href="#NM_LCASE_TOSTRING">Nm: La classe définit tos tring() ; ne devrait-ce pas être toString() ?</a></td><td>Correctness</td></tr>
242 <tr bgcolor="#eeeeee"><td><a href="#NM_METHOD_CONSTRUCTOR_CONFUSION">Nm: Confusi on apparente entre une méthode et un constructeur</a></td><td>Correctness</td></ tr> 247 <tr bgcolor="#eeeeee"><td><a href="#NM_METHOD_CONSTRUCTOR_CONFUSION">Nm: Confusi on apparente entre une méthode et un constructeur</a></td><td>Correctness</td></ tr>
243 <tr bgcolor="#ffffff"><td><a href="#NM_VERY_CONFUSING">Nm: Noms de méthodes très ambigus</a></td><td>Correctness</td></tr> 248 <tr bgcolor="#ffffff"><td><a href="#NM_VERY_CONFUSING">Nm: Noms de méthodes très ambigus</a></td><td>Correctness</td></tr>
244 <tr bgcolor="#eeeeee"><td><a href="#NM_WRONG_PACKAGE">Nm: Method doesn't overrid e method in superclass due to wrong package for parameter</a></td><td>Correctnes s</td></tr> 249 <tr bgcolor="#eeeeee"><td><a href="#NM_WRONG_PACKAGE">Nm: Method doesn't overrid e method in superclass due to wrong package for parameter</a></td><td>Correctnes s</td></tr>
245 <tr bgcolor="#ffffff"><td><a href="#QBA_QUESTIONABLE_BOOLEAN_ASSIGNMENT">QBA: Mé thode assignant une valeur boléenne fixe dans une expression booléenne</a></td>< td>Correctness</td></tr> 250 <tr bgcolor="#ffffff"><td><a href="#QBA_QUESTIONABLE_BOOLEAN_ASSIGNMENT">QBA: Mé thode assignant une valeur boléenne fixe dans une expression booléenne</a></td>< td>Correctness</td></tr>
251 <tr bgcolor="#eeeeee"><td><a href="#RANGE_ARRAY_INDEX">RANGE: Array index is out of bounds</a></td><td>Correctness</td></tr>
252 <tr bgcolor="#ffffff"><td><a href="#RANGE_ARRAY_LENGTH">RANGE: Array length is o ut of bounds</a></td><td>Correctness</td></tr>
253 <tr bgcolor="#eeeeee"><td><a href="#RANGE_ARRAY_OFFSET">RANGE: Array offset is o ut of bounds</a></td><td>Correctness</td></tr>
254 <tr bgcolor="#ffffff"><td><a href="#RANGE_STRING_INDEX">RANGE: String index is o ut of bounds</a></td><td>Correctness</td></tr>
246 <tr bgcolor="#eeeeee"><td><a href="#RC_REF_COMPARISON">RC: Comparaison de référe nces suspecte</a></td><td>Correctness</td></tr> 255 <tr bgcolor="#eeeeee"><td><a href="#RC_REF_COMPARISON">RC: Comparaison de référe nces suspecte</a></td><td>Correctness</td></tr>
247 <tr bgcolor="#ffffff"><td><a href="#RCN_REDUNDANT_NULLCHECK_WOULD_HAVE_BEEN_A_NP E">RCN: Test de nullité d'une valeur préalablement déréférencée</a></td><td>Corr ectness</td></tr> 256 <tr bgcolor="#ffffff"><td><a href="#RCN_REDUNDANT_NULLCHECK_WOULD_HAVE_BEEN_A_NP E">RCN: Test de nullité d'une valeur préalablement déréférencée</a></td><td>Corr ectness</td></tr>
248 <tr bgcolor="#eeeeee"><td><a href="#RE_BAD_SYNTAX_FOR_REGULAR_EXPRESSION">RE: Sy ntaxe d'expression régulière invalide</a></td><td>Correctness</td></tr> 257 <tr bgcolor="#eeeeee"><td><a href="#RE_BAD_SYNTAX_FOR_REGULAR_EXPRESSION">RE: Sy ntaxe d'expression régulière invalide</a></td><td>Correctness</td></tr>
249 <tr bgcolor="#ffffff"><td><a href="#RE_CANT_USE_FILE_SEPARATOR_AS_REGULAR_EXPRES SION">RE: File.separator used for regular expression</a></td><td>Correctness</td ></tr> 258 <tr bgcolor="#ffffff"><td><a href="#RE_CANT_USE_FILE_SEPARATOR_AS_REGULAR_EXPRES SION">RE: File.separator used for regular expression</a></td><td>Correctness</td ></tr>
250 <tr bgcolor="#eeeeee"><td><a href="#RE_POSSIBLE_UNINTENDED_PATTERN">RE: "." util isé dans une expression régulière</a></td><td>Correctness</td></tr> 259 <tr bgcolor="#eeeeee"><td><a href="#RE_POSSIBLE_UNINTENDED_PATTERN">RE: "." util isé dans une expression régulière</a></td><td>Correctness</td></tr>
251 <tr bgcolor="#ffffff"><td><a href="#RV_01_TO_INT">RV: Les valeurs aléatoires ent re 0 et 1 sont réduites à l'entier 0</a></td><td>Correctness</td></tr> 260 <tr bgcolor="#ffffff"><td><a href="#RV_01_TO_INT">RV: Les valeurs aléatoires ent re 0 et 1 sont réduites à l'entier 0</a></td><td>Correctness</td></tr>
252 <tr bgcolor="#eeeeee"><td><a href="#RV_ABSOLUTE_VALUE_OF_HASHCODE">RV: Bad attem pt to compute absolute value of signed 32-bit hashcode </a></td><td>Correctness< /td></tr> 261 <tr bgcolor="#eeeeee"><td><a href="#RV_ABSOLUTE_VALUE_OF_HASHCODE">RV: Bad attem pt to compute absolute value of signed 32-bit hashcode </a></td><td>Correctness< /td></tr>
253 <tr bgcolor="#ffffff"><td><a href="#RV_ABSOLUTE_VALUE_OF_RANDOM_INT">RV: Bad att empt to compute absolute value of signed random integer</a></td><td>Correctness< /td></tr> 262 <tr bgcolor="#ffffff"><td><a href="#RV_ABSOLUTE_VALUE_OF_RANDOM_INT">RV: Bad att empt to compute absolute value of signed random integer</a></td><td>Correctness< /td></tr>
254 <tr bgcolor="#eeeeee"><td><a href="#RV_CHECK_COMPARETO_FOR_SPECIFIC_RETURN_VALUE ">RV: Code checks for specific values returned by compareTo</a></td><td>Correctn ess</td></tr> 263 <tr bgcolor="#eeeeee"><td><a href="#RV_CHECK_COMPARETO_FOR_SPECIFIC_RETURN_VALUE ">RV: Code checks for specific values returned by compareTo</a></td><td>Correctn ess</td></tr>
255 <tr bgcolor="#ffffff"><td><a href="#RV_EXCEPTION_NOT_THROWN">RV: Exception creat ed and dropped rather than thrown</a></td><td>Correctness</td></tr> 264 <tr bgcolor="#ffffff"><td><a href="#RV_EXCEPTION_NOT_THROWN">RV: Exception creat ed and dropped rather than thrown</a></td><td>Correctness</td></tr>
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
294 <tr bgcolor="#eeeeee"><td><a href="#DP_CREATE_CLASSLOADER_INSIDE_DO_PRIVILEGED"> DP: Les chargeurs de classes ne doivent être créés qu'à partir de block doPrivil eged</a></td><td>Malicious code vulnerability</td></tr> 303 <tr bgcolor="#eeeeee"><td><a href="#DP_CREATE_CLASSLOADER_INSIDE_DO_PRIVILEGED"> DP: Les chargeurs de classes ne doivent être créés qu'à partir de block doPrivil eged</a></td><td>Malicious code vulnerability</td></tr>
295 <tr bgcolor="#ffffff"><td><a href="#DP_DO_INSIDE_DO_PRIVILEGED">DP: Méthode invo quée alors qu'elle ne devrait l'être qu'à partir d'un block doPrivileged</a></td ><td>Malicious code vulnerability</td></tr> 304 <tr bgcolor="#ffffff"><td><a href="#DP_DO_INSIDE_DO_PRIVILEGED">DP: Méthode invo quée alors qu'elle ne devrait l'être qu'à partir d'un block doPrivileged</a></td ><td>Malicious code vulnerability</td></tr>
296 <tr bgcolor="#eeeeee"><td><a href="#EI_EXPOSE_REP">EI: Une méthode peut exposer sa représentation interne en renvoyant une référence à un objet modifiable</a></ td><td>Malicious code vulnerability</td></tr> 305 <tr bgcolor="#eeeeee"><td><a href="#EI_EXPOSE_REP">EI: Une méthode peut exposer sa représentation interne en renvoyant une référence à un objet modifiable</a></ td><td>Malicious code vulnerability</td></tr>
297 <tr bgcolor="#ffffff"><td><a href="#EI_EXPOSE_REP2">EI2: Une méthode expose sa r eprésentation interne en incorporant une référence à un objet modifiable</a></td ><td>Malicious code vulnerability</td></tr> 306 <tr bgcolor="#ffffff"><td><a href="#EI_EXPOSE_REP2">EI2: Une méthode expose sa r eprésentation interne en incorporant une référence à un objet modifiable</a></td ><td>Malicious code vulnerability</td></tr>
298 <tr bgcolor="#eeeeee"><td><a href="#FI_PUBLIC_SHOULD_BE_PROTECTED">FI: Un finali seur devrait être protégé, pas public</a></td><td>Malicious code vulnerability</ td></tr> 307 <tr bgcolor="#eeeeee"><td><a href="#FI_PUBLIC_SHOULD_BE_PROTECTED">FI: Un finali seur devrait être protégé, pas public</a></td><td>Malicious code vulnerability</ td></tr>
299 <tr bgcolor="#ffffff"><td><a href="#EI_EXPOSE_STATIC_REP2">MS: Une méthode peut exposer un état interne statique en stockant un objet modifiable dans un champs statique</a></td><td>Malicious code vulnerability</td></tr> 308 <tr bgcolor="#ffffff"><td><a href="#EI_EXPOSE_STATIC_REP2">MS: Une méthode peut exposer un état interne statique en stockant un objet modifiable dans un champs statique</a></td><td>Malicious code vulnerability</td></tr>
300 <tr bgcolor="#eeeeee"><td><a href="#MS_CANNOT_BE_FINAL">MS: Un champ n'est pas f inal et ne peut pas être protégé face à du code malveillant</a></td><td>Maliciou s code vulnerability</td></tr> 309 <tr bgcolor="#eeeeee"><td><a href="#MS_CANNOT_BE_FINAL">MS: Un champ n'est pas f inal et ne peut pas être protégé face à du code malveillant</a></td><td>Maliciou s code vulnerability</td></tr>
301 <tr bgcolor="#ffffff"><td><a href="#MS_EXPOSE_REP">MS: Une méthode statique publ ique risque d'exposer une représentation interne en renvoyant un tableau</a></td ><td>Malicious code vulnerability</td></tr> 310 <tr bgcolor="#ffffff"><td><a href="#MS_EXPOSE_REP">MS: Une méthode statique publ ique risque d'exposer une représentation interne en renvoyant un tableau</a></td ><td>Malicious code vulnerability</td></tr>
302 <tr bgcolor="#eeeeee"><td><a href="#MS_FINAL_PKGPROTECT">MS: Le champ devrait êt re à la fois final et package protected</a></td><td>Malicious code vulnerability </td></tr> 311 <tr bgcolor="#eeeeee"><td><a href="#MS_FINAL_PKGPROTECT">MS: Le champ devrait êt re à la fois final et package protected</a></td><td>Malicious code vulnerability </td></tr>
303 <tr bgcolor="#ffffff"><td><a href="#MS_MUTABLE_ARRAY">MS: Un champ est un tablea u modifiable</a></td><td>Malicious code vulnerability</td></tr> 312 <tr bgcolor="#ffffff"><td><a href="#MS_MUTABLE_ARRAY">MS: Un champ est un tablea u modifiable</a></td><td>Malicious code vulnerability</td></tr>
313 <tr bgcolor="#eeeeee"><td><a href="#MS_MUTABLE_COLLECTION">MS: Field is a mutabl e collection</a></td><td>Malicious code vulnerability</td></tr>
314 <tr bgcolor="#ffffff"><td><a href="#MS_MUTABLE_COLLECTION_PKGPROTECT">MS: Field is a mutable collection which should be package protected</a></td><td>Malicious code vulnerability</td></tr>
304 <tr bgcolor="#eeeeee"><td><a href="#MS_MUTABLE_HASHTABLE">MS: Un champ modifiabl e est une Hashtable</a></td><td>Malicious code vulnerability</td></tr> 315 <tr bgcolor="#eeeeee"><td><a href="#MS_MUTABLE_HASHTABLE">MS: Un champ modifiabl e est une Hashtable</a></td><td>Malicious code vulnerability</td></tr>
305 <tr bgcolor="#ffffff"><td><a href="#MS_OOI_PKGPROTECT">MS: Le champ devrait être sorti de l'interface et mis en package protected</a></td><td>Malicious code vul nerability</td></tr> 316 <tr bgcolor="#ffffff"><td><a href="#MS_OOI_PKGPROTECT">MS: Le champ devrait être sorti de l'interface et mis en package protected</a></td><td>Malicious code vul nerability</td></tr>
306 <tr bgcolor="#eeeeee"><td><a href="#MS_PKGPROTECT">MS: Un champ devrait être pac kage protected</a></td><td>Malicious code vulnerability</td></tr> 317 <tr bgcolor="#eeeeee"><td><a href="#MS_PKGPROTECT">MS: Un champ devrait être pac kage protected</a></td><td>Malicious code vulnerability</td></tr>
307 <tr bgcolor="#ffffff"><td><a href="#MS_SHOULD_BE_FINAL">MS: Un champ n'est pas f inal alors qu'il devrait l'être</a></td><td>Malicious code vulnerability</td></t r> 318 <tr bgcolor="#ffffff"><td><a href="#MS_SHOULD_BE_FINAL">MS: Un champ n'est pas f inal alors qu'il devrait l'être</a></td><td>Malicious code vulnerability</td></t r>
308 <tr bgcolor="#eeeeee"><td><a href="#MS_SHOULD_BE_REFACTORED_TO_BE_FINAL">MS: Fie ld isn't final but should be refactored to be so</a></td><td>Malicious code vuln erability</td></tr> 319 <tr bgcolor="#eeeeee"><td><a href="#MS_SHOULD_BE_REFACTORED_TO_BE_FINAL">MS: Fie ld isn't final but should be refactored to be so</a></td><td>Malicious code vuln erability</td></tr>
309 <tr bgcolor="#ffffff"><td><a href="#AT_OPERATION_SEQUENCE_ON_CONCURRENT_ABSTRACT ION">AT: Sequence of calls to concurrent abstraction may not be atomic</a></td>< td>Multithreaded correctness</td></tr> 320 <tr bgcolor="#ffffff"><td><a href="#AT_OPERATION_SEQUENCE_ON_CONCURRENT_ABSTRACT ION">AT: Sequence of calls to concurrent abstraction may not be atomic</a></td>< td>Multithreaded correctness</td></tr>
310 <tr bgcolor="#eeeeee"><td><a href="#DC_DOUBLECHECK">DC: Possible double vérifica tion d'un champ</a></td><td>Multithreaded correctness</td></tr> 321 <tr bgcolor="#eeeeee"><td><a href="#DC_DOUBLECHECK">DC: Possible double vérifica tion d'un champ</a></td><td>Multithreaded correctness</td></tr>
311 <tr bgcolor="#ffffff"><td><a href="#DL_SYNCHRONIZATION_ON_BOOLEAN">DL: Synchroni zation on Boolean</a></td><td>Multithreaded correctness</td></tr> 322 <tr bgcolor="#ffffff"><td><a href="#DC_PARTIALLY_CONSTRUCTED">DC: Possible expos ure of partially initialized object</a></td><td>Multithreaded correctness</td></ tr>
312 <tr bgcolor="#eeeeee"><td><a href="#DL_SYNCHRONIZATION_ON_BOXED_PRIMITIVE">DL: S ynchronization on boxed primitive</a></td><td>Multithreaded correctness</td></tr > 323 <tr bgcolor="#eeeeee"><td><a href="#DL_SYNCHRONIZATION_ON_BOOLEAN">DL: Synchroni zation on Boolean</a></td><td>Multithreaded correctness</td></tr>
313 <tr bgcolor="#ffffff"><td><a href="#DL_SYNCHRONIZATION_ON_SHARED_CONSTANT">DL: S ynchronization on interned String </a></td><td>Multithreaded correctness</td></t r> 324 <tr bgcolor="#ffffff"><td><a href="#DL_SYNCHRONIZATION_ON_BOXED_PRIMITIVE">DL: S ynchronization on boxed primitive</a></td><td>Multithreaded correctness</td></tr >
314 <tr bgcolor="#eeeeee"><td><a href="#DL_SYNCHRONIZATION_ON_UNSHARED_BOXED_PRIMITI VE">DL: Synchronization on boxed primitive values</a></td><td>Multithreaded corr ectness</td></tr> 325 <tr bgcolor="#eeeeee"><td><a href="#DL_SYNCHRONIZATION_ON_SHARED_CONSTANT">DL: S ynchronization on interned String </a></td><td>Multithreaded correctness</td></t r>
315 <tr bgcolor="#ffffff"><td><a href="#DM_MONITOR_WAIT_ON_CONDITION">Dm: Wait() app elé sur une Condition</a></td><td>Multithreaded correctness</td></tr> 326 <tr bgcolor="#ffffff"><td><a href="#DL_SYNCHRONIZATION_ON_UNSHARED_BOXED_PRIMITI VE">DL: Synchronization on boxed primitive values</a></td><td>Multithreaded corr ectness</td></tr>
316 <tr bgcolor="#eeeeee"><td><a href="#DM_USELESS_THREAD">Dm: Thread créé avec la m éthode run vide par défaut</a></td><td>Multithreaded correctness</td></tr> 327 <tr bgcolor="#eeeeee"><td><a href="#DM_MONITOR_WAIT_ON_CONDITION">Dm: Wait() app elé sur une Condition</a></td><td>Multithreaded correctness</td></tr>
317 <tr bgcolor="#ffffff"><td><a href="#ESync_EMPTY_SYNC">ESync: Bloc synchronisé vi de</a></td><td>Multithreaded correctness</td></tr> 328 <tr bgcolor="#ffffff"><td><a href="#DM_USELESS_THREAD">Dm: Thread créé avec la m éthode run vide par défaut</a></td><td>Multithreaded correctness</td></tr>
318 <tr bgcolor="#eeeeee"><td><a href="#IS2_INCONSISTENT_SYNC">IS: Synchronisation i ncohérente</a></td><td>Multithreaded correctness</td></tr> 329 <tr bgcolor="#eeeeee"><td><a href="#ESync_EMPTY_SYNC">ESync: Bloc synchronisé vi de</a></td><td>Multithreaded correctness</td></tr>
319 <tr bgcolor="#ffffff"><td><a href="#IS_FIELD_NOT_GUARDED">IS: Champ non protégé contre les accès concurrents</a></td><td>Multithreaded correctness</td></tr> 330 <tr bgcolor="#ffffff"><td><a href="#IS2_INCONSISTENT_SYNC">IS: Synchronisation i ncohérente</a></td><td>Multithreaded correctness</td></tr>
320 <tr bgcolor="#eeeeee"><td><a href="#JLM_JSR166_LOCK_MONITORENTER">JLM: Synchroni sation effectuée sur un Lock java.util.concurrent</a></td><td>Multithreaded corr ectness</td></tr> 331 <tr bgcolor="#eeeeee"><td><a href="#IS_FIELD_NOT_GUARDED">IS: Champ non protégé contre les accès concurrents</a></td><td>Multithreaded correctness</td></tr>
321 <tr bgcolor="#ffffff"><td><a href="#JLM_JSR166_UTILCONCURRENT_MONITORENTER">JLM: Synchronization performed on util.concurrent instance</a></td><td>Multithreaded correctness</td></tr> 332 <tr bgcolor="#ffffff"><td><a href="#JLM_JSR166_LOCK_MONITORENTER">JLM: Synchroni sation effectuée sur un Lock java.util.concurrent</a></td><td>Multithreaded corr ectness</td></tr>
322 <tr bgcolor="#eeeeee"><td><a href="#JML_JSR166_CALLING_WAIT_RATHER_THAN_AWAIT">J LM: Using monitor style wait methods on util.concurrent abstraction</a></td><td> Multithreaded correctness</td></tr> 333 <tr bgcolor="#eeeeee"><td><a href="#JLM_JSR166_UTILCONCURRENT_MONITORENTER">JLM: Synchronization performed on util.concurrent instance</a></td><td>Multithreaded correctness</td></tr>
323 <tr bgcolor="#ffffff"><td><a href="#LI_LAZY_INIT_STATIC">LI: Initialisation pare sseuse incorrecte d'un champ statique</a></td><td>Multithreaded correctness</td> </tr> 334 <tr bgcolor="#ffffff"><td><a href="#JML_JSR166_CALLING_WAIT_RATHER_THAN_AWAIT">J LM: Using monitor style wait methods on util.concurrent abstraction</a></td><td> Multithreaded correctness</td></tr>
324 <tr bgcolor="#eeeeee"><td><a href="#LI_LAZY_INIT_UPDATE_STATIC">LI: Incorrect la zy initialization and update of static field</a></td><td>Multithreaded correctne ss</td></tr> 335 <tr bgcolor="#eeeeee"><td><a href="#LI_LAZY_INIT_STATIC">LI: Initialisation pare sseuse incorrecte d'un champ statique</a></td><td>Multithreaded correctness</td> </tr>
325 <tr bgcolor="#ffffff"><td><a href="#ML_SYNC_ON_FIELD_TO_GUARD_CHANGING_THAT_FIEL D">ML: Synchronization on field in futile attempt to guard that field</a></td><t d>Multithreaded correctness</td></tr> 336 <tr bgcolor="#ffffff"><td><a href="#LI_LAZY_INIT_UPDATE_STATIC">LI: Incorrect la zy initialization and update of static field</a></td><td>Multithreaded correctne ss</td></tr>
326 <tr bgcolor="#eeeeee"><td><a href="#ML_SYNC_ON_UPDATED_FIELD">ML: La méthode se synchronise sur un champ mis à jour</a></td><td>Multithreaded correctness</td></ tr> 337 <tr bgcolor="#eeeeee"><td><a href="#ML_SYNC_ON_FIELD_TO_GUARD_CHANGING_THAT_FIEL D">ML: Synchronization on field in futile attempt to guard that field</a></td><t d>Multithreaded correctness</td></tr>
327 <tr bgcolor="#ffffff"><td><a href="#MSF_MUTABLE_SERVLET_FIELD">MSF: Mutable serv let field</a></td><td>Multithreaded correctness</td></tr> 338 <tr bgcolor="#ffffff"><td><a href="#ML_SYNC_ON_UPDATED_FIELD">ML: La méthode se synchronise sur un champ mis à jour</a></td><td>Multithreaded correctness</td></ tr>
328 <tr bgcolor="#eeeeee"><td><a href="#MWN_MISMATCHED_NOTIFY">MWN: notify() non app areillé</a></td><td>Multithreaded correctness</td></tr> 339 <tr bgcolor="#eeeeee"><td><a href="#MSF_MUTABLE_SERVLET_FIELD">MSF: Mutable serv let field</a></td><td>Multithreaded correctness</td></tr>
329 <tr bgcolor="#ffffff"><td><a href="#MWN_MISMATCHED_WAIT">MWN: wait() non apparei llé</a></td><td>Multithreaded correctness</td></tr> 340 <tr bgcolor="#ffffff"><td><a href="#MWN_MISMATCHED_NOTIFY">MWN: notify() non app areillé</a></td><td>Multithreaded correctness</td></tr>
330 <tr bgcolor="#eeeeee"><td><a href="#NN_NAKED_NOTIFY">NN: Appel notify() isolé da ns une méthode</a></td><td>Multithreaded correctness</td></tr> 341 <tr bgcolor="#eeeeee"><td><a href="#MWN_MISMATCHED_WAIT">MWN: wait() non apparei llé</a></td><td>Multithreaded correctness</td></tr>
331 <tr bgcolor="#ffffff"><td><a href="#NP_SYNC_AND_NULL_CHECK_FIELD">NP: Synchroniz e and null check on the same field.</a></td><td>Multithreaded correctness</td></ tr> 342 <tr bgcolor="#ffffff"><td><a href="#NN_NAKED_NOTIFY">NN: Appel notify() isolé da ns une méthode</a></td><td>Multithreaded correctness</td></tr>
332 <tr bgcolor="#eeeeee"><td><a href="#NO_NOTIFY_NOT_NOTIFYALL">No: Utilisation de notify() plutôt que notifyAll() dans une méthode</a></td><td>Multithreaded corre ctness</td></tr> 343 <tr bgcolor="#eeeeee"><td><a href="#NP_SYNC_AND_NULL_CHECK_FIELD">NP: Synchroniz e and null check on the same field.</a></td><td>Multithreaded correctness</td></ tr>
333 <tr bgcolor="#ffffff"><td><a href="#RS_READOBJECT_SYNC">RS: Seule la méthode rea dObject() est synchronisée</a></td><td>Multithreaded correctness</td></tr> 344 <tr bgcolor="#ffffff"><td><a href="#NO_NOTIFY_NOT_NOTIFYALL">No: Utilisation de notify() plutôt que notifyAll() dans une méthode</a></td><td>Multithreaded corre ctness</td></tr>
334 <tr bgcolor="#eeeeee"><td><a href="#RV_RETURN_VALUE_OF_PUTIFABSENT_IGNORED">RV: Return value of putIfAbsent ignored, value passed to putIfAbsent reused</a></td> <td>Multithreaded correctness</td></tr> 345 <tr bgcolor="#eeeeee"><td><a href="#RS_READOBJECT_SYNC">RS: Seule la méthode rea dObject() est synchronisée</a></td><td>Multithreaded correctness</td></tr>
335 <tr bgcolor="#ffffff"><td><a href="#RU_INVOKE_RUN">Ru: Invocation de run() sur u n thread (Vouliez-vous plutôt dire start() ?)</a></td><td>Multithreaded correctn ess</td></tr> 346 <tr bgcolor="#ffffff"><td><a href="#RV_RETURN_VALUE_OF_PUTIFABSENT_IGNORED">RV: Return value of putIfAbsent ignored, value passed to putIfAbsent reused</a></td> <td>Multithreaded correctness</td></tr>
336 <tr bgcolor="#eeeeee"><td><a href="#SC_START_IN_CTOR">SC: Un constructeur invoqu e Thread.start()</a></td><td>Multithreaded correctness</td></tr> 347 <tr bgcolor="#eeeeee"><td><a href="#RU_INVOKE_RUN">Ru: Invocation de run() sur u n thread (Vouliez-vous plutôt dire start() ?)</a></td><td>Multithreaded correctn ess</td></tr>
337 <tr bgcolor="#ffffff"><td><a href="#SP_SPIN_ON_FIELD">SP: Méthode bouclant sur u n champ</a></td><td>Multithreaded correctness</td></tr> 348 <tr bgcolor="#ffffff"><td><a href="#SC_START_IN_CTOR">SC: Un constructeur invoqu e Thread.start()</a></td><td>Multithreaded correctness</td></tr>
338 <tr bgcolor="#eeeeee"><td><a href="#STCAL_INVOKE_ON_STATIC_CALENDAR_INSTANCE">ST CAL: Call to static Calendar</a></td><td>Multithreaded correctness</td></tr> 349 <tr bgcolor="#eeeeee"><td><a href="#SP_SPIN_ON_FIELD">SP: Méthode bouclant sur u n champ</a></td><td>Multithreaded correctness</td></tr>
339 <tr bgcolor="#ffffff"><td><a href="#STCAL_INVOKE_ON_STATIC_DATE_FORMAT_INSTANCE" >STCAL: Call to static DateFormat</a></td><td>Multithreaded correctness</td></tr > 350 <tr bgcolor="#ffffff"><td><a href="#STCAL_INVOKE_ON_STATIC_CALENDAR_INSTANCE">ST CAL: Call to static Calendar</a></td><td>Multithreaded correctness</td></tr>
340 <tr bgcolor="#eeeeee"><td><a href="#STCAL_STATIC_CALENDAR_INSTANCE">STCAL: Stati c Calendar field</a></td><td>Multithreaded correctness</td></tr> 351 <tr bgcolor="#eeeeee"><td><a href="#STCAL_INVOKE_ON_STATIC_DATE_FORMAT_INSTANCE" >STCAL: Call to static DateFormat</a></td><td>Multithreaded correctness</td></tr >
341 <tr bgcolor="#ffffff"><td><a href="#STCAL_STATIC_SIMPLE_DATE_FORMAT_INSTANCE">ST CAL: Static DateFormat</a></td><td>Multithreaded correctness</td></tr> 352 <tr bgcolor="#ffffff"><td><a href="#STCAL_STATIC_CALENDAR_INSTANCE">STCAL: Stati c Calendar field</a></td><td>Multithreaded correctness</td></tr>
342 <tr bgcolor="#eeeeee"><td><a href="#SWL_SLEEP_WITH_LOCK_HELD">SWL: Appel de la m éthode Thread.sleep() avec un verrou</a></td><td>Multithreaded correctness</td>< /tr> 353 <tr bgcolor="#eeeeee"><td><a href="#STCAL_STATIC_SIMPLE_DATE_FORMAT_INSTANCE">ST CAL: Static DateFormat</a></td><td>Multithreaded correctness</td></tr>
343 <tr bgcolor="#ffffff"><td><a href="#TLW_TWO_LOCK_WAIT">TLW: wait() avec deux ver rous en attente</a></td><td>Multithreaded correctness</td></tr> 354 <tr bgcolor="#ffffff"><td><a href="#SWL_SLEEP_WITH_LOCK_HELD">SWL: Appel de la m éthode Thread.sleep() avec un verrou</a></td><td>Multithreaded correctness</td>< /tr>
344 <tr bgcolor="#eeeeee"><td><a href="#UG_SYNC_SET_UNSYNC_GET">UG: Méthode getXXX n on synchronisée, méthode setXXX synchronisée</a></td><td>Multithreaded correctne ss</td></tr> 355 <tr bgcolor="#eeeeee"><td><a href="#TLW_TWO_LOCK_WAIT">TLW: wait() avec deux ver rous en attente</a></td><td>Multithreaded correctness</td></tr>
345 <tr bgcolor="#ffffff"><td><a href="#UL_UNRELEASED_LOCK">UL: La méthode ne libère pas un verrou dans tous les chemins d'exécution</a></td><td>Multithreaded corre ctness</td></tr> 356 <tr bgcolor="#ffffff"><td><a href="#UG_SYNC_SET_UNSYNC_GET">UG: Méthode getXXX n on synchronisée, méthode setXXX synchronisée</a></td><td>Multithreaded correctne ss</td></tr>
346 <tr bgcolor="#eeeeee"><td><a href="#UL_UNRELEASED_LOCK_EXCEPTION_PATH">UL: La mé thode ne libère pas un verrou dans tous les chemins d'exception</a></td><td>Mult ithreaded correctness</td></tr> 357 <tr bgcolor="#eeeeee"><td><a href="#UL_UNRELEASED_LOCK">UL: La méthode ne libère pas un verrou dans tous les chemins d'exécution</a></td><td>Multithreaded corre ctness</td></tr>
347 <tr bgcolor="#ffffff"><td><a href="#UW_UNCOND_WAIT">UW: Méthode contenant un wai t() non conditionné</a></td><td>Multithreaded correctness</td></tr> 358 <tr bgcolor="#ffffff"><td><a href="#UL_UNRELEASED_LOCK_EXCEPTION_PATH">UL: La mé thode ne libère pas un verrou dans tous les chemins d'exception</a></td><td>Mult ithreaded correctness</td></tr>
348 <tr bgcolor="#eeeeee"><td><a href="#VO_VOLATILE_INCREMENT">VO: An increment to a volatile field isn't atomic</a></td><td>Multithreaded correctness</td></tr> 359 <tr bgcolor="#eeeeee"><td><a href="#UW_UNCOND_WAIT">UW: Méthode contenant un wai t() non conditionné</a></td><td>Multithreaded correctness</td></tr>
349 <tr bgcolor="#ffffff"><td><a href="#VO_VOLATILE_REFERENCE_TO_ARRAY">VO: Une réfé rence volatile à un tableau ne traite pas les éléments du tableau comme volatile s</a></td><td>Multithreaded correctness</td></tr> 360 <tr bgcolor="#ffffff"><td><a href="#VO_VOLATILE_INCREMENT">VO: An increment to a volatile field isn't atomic</a></td><td>Multithreaded correctness</td></tr>
350 <tr bgcolor="#eeeeee"><td><a href="#WL_USING_GETCLASS_RATHER_THAN_CLASS_LITERAL" >WL: Synchronization on getClass rather than class literal</a></td><td>Multithre aded correctness</td></tr> 361 <tr bgcolor="#eeeeee"><td><a href="#VO_VOLATILE_REFERENCE_TO_ARRAY">VO: Une réfé rence volatile à un tableau ne traite pas les éléments du tableau comme volatile s</a></td><td>Multithreaded correctness</td></tr>
351 <tr bgcolor="#ffffff"><td><a href="#WS_WRITEOBJECT_SYNC">WS: Seule la méthode wr iteObject() est synchronisée</a></td><td>Multithreaded correctness</td></tr> 362 <tr bgcolor="#ffffff"><td><a href="#WL_USING_GETCLASS_RATHER_THAN_CLASS_LITERAL" >WL: Synchronization on getClass rather than class literal</a></td><td>Multithre aded correctness</td></tr>
352 <tr bgcolor="#eeeeee"><td><a href="#WA_AWAIT_NOT_IN_LOOP">Wa: Condition.await() en dehors d'une boucle</a></td><td>Multithreaded correctness</td></tr> 363 <tr bgcolor="#eeeeee"><td><a href="#WS_WRITEOBJECT_SYNC">WS: Seule la méthode wr iteObject() est synchronisée</a></td><td>Multithreaded correctness</td></tr>
353 <tr bgcolor="#ffffff"><td><a href="#WA_NOT_IN_LOOP">Wa: Méthode contenant un wai t() en dehors d'une boucle</a></td><td>Multithreaded correctness</td></tr> 364 <tr bgcolor="#ffffff"><td><a href="#WA_AWAIT_NOT_IN_LOOP">Wa: Condition.await() en dehors d'une boucle</a></td><td>Multithreaded correctness</td></tr>
354 <tr bgcolor="#eeeeee"><td><a href="#BX_BOXING_IMMEDIATELY_UNBOXED">Bx: Primitive value is boxed and then immediately unboxed</a></td><td>Performance</td></tr> 365 <tr bgcolor="#eeeeee"><td><a href="#WA_NOT_IN_LOOP">Wa: Méthode contenant un wai t() en dehors d'une boucle</a></td><td>Multithreaded correctness</td></tr>
355 <tr bgcolor="#ffffff"><td><a href="#BX_BOXING_IMMEDIATELY_UNBOXED_TO_PERFORM_COE RCION">Bx: Primitive value is boxed then unboxed to perform primitive coercion</ a></td><td>Performance</td></tr> 366 <tr bgcolor="#ffffff"><td><a href="#BX_BOXING_IMMEDIATELY_UNBOXED">Bx: Primitive value is boxed and then immediately unboxed</a></td><td>Performance</td></tr>
367 <tr bgcolor="#eeeeee"><td><a href="#BX_BOXING_IMMEDIATELY_UNBOXED_TO_PERFORM_COE RCION">Bx: Primitive value is boxed then unboxed to perform primitive coercion</ a></td><td>Performance</td></tr>
368 <tr bgcolor="#ffffff"><td><a href="#BX_UNBOXED_AND_COERCED_FOR_TERNARY_OPERATOR" >Bx: Primitive value is unboxed and coerced for ternary operator</a></td><td>Per formance</td></tr>
356 <tr bgcolor="#eeeeee"><td><a href="#BX_UNBOXING_IMMEDIATELY_REBOXED">Bx: Boxed v alue is unboxed and then immediately reboxed</a></td><td>Performance</td></tr> 369 <tr bgcolor="#eeeeee"><td><a href="#BX_UNBOXING_IMMEDIATELY_REBOXED">Bx: Boxed v alue is unboxed and then immediately reboxed</a></td><td>Performance</td></tr>
357 <tr bgcolor="#ffffff"><td><a href="#DM_BOXED_PRIMITIVE_FOR_PARSING">Bx: Boxing/u nboxing to parse a primitive</a></td><td>Performance</td></tr> 370 <tr bgcolor="#ffffff"><td><a href="#DM_BOXED_PRIMITIVE_FOR_COMPARE">Bx: Boxing a primitive to compare</a></td><td>Performance</td></tr>
358 <tr bgcolor="#eeeeee"><td><a href="#DM_BOXED_PRIMITIVE_TOSTRING">Bx: Méthode all ouant une primitive boxed pour appeler toString</a></td><td>Performance</td></tr > 371 <tr bgcolor="#eeeeee"><td><a href="#DM_BOXED_PRIMITIVE_FOR_PARSING">Bx: Boxing/u nboxing to parse a primitive</a></td><td>Performance</td></tr>
359 <tr bgcolor="#ffffff"><td><a href="#DM_FP_NUMBER_CTOR">Bx: Method invokes ineffi cient floating-point Number constructor; use static valueOf instead</a></td><td> Performance</td></tr> 372 <tr bgcolor="#ffffff"><td><a href="#DM_BOXED_PRIMITIVE_TOSTRING">Bx: Méthode all ouant une primitive boxed pour appeler toString</a></td><td>Performance</td></tr >
360 <tr bgcolor="#eeeeee"><td><a href="#DM_NUMBER_CTOR">Bx: Method invokes inefficie nt Number constructor; use static valueOf instead</a></td><td>Performance</td></ tr> 373 <tr bgcolor="#eeeeee"><td><a href="#DM_FP_NUMBER_CTOR">Bx: Method invokes ineffi cient floating-point Number constructor; use static valueOf instead</a></td><td> Performance</td></tr>
361 <tr bgcolor="#ffffff"><td><a href="#DMI_BLOCKING_METHODS_ON_URL">Dm: The equals and hashCode methods of URL are blocking</a></td><td>Performance</td></tr> 374 <tr bgcolor="#ffffff"><td><a href="#DM_NUMBER_CTOR">Bx: Method invokes inefficie nt Number constructor; use static valueOf instead</a></td><td>Performance</td></ tr>
362 <tr bgcolor="#eeeeee"><td><a href="#DMI_COLLECTION_OF_URLS">Dm: Maps and sets of URLs can be performance hogs</a></td><td>Performance</td></tr> 375 <tr bgcolor="#eeeeee"><td><a href="#DMI_BLOCKING_METHODS_ON_URL">Dm: The equals and hashCode methods of URL are blocking</a></td><td>Performance</td></tr>
363 <tr bgcolor="#ffffff"><td><a href="#DM_BOOLEAN_CTOR">Dm: La méthode invoque le c onstructeur inutile Boolean() ; utilisez Boolean.valueOf(...) à la place</a></td ><td>Performance</td></tr> 376 <tr bgcolor="#ffffff"><td><a href="#DMI_COLLECTION_OF_URLS">Dm: Maps and sets of URLs can be performance hogs</a></td><td>Performance</td></tr>
364 <tr bgcolor="#eeeeee"><td><a href="#DM_GC">Dm: Ramasse-miettes explicite ; extrê mement douteux sauf dans du code de banc d'essai</a></td><td>Performance</td></t r> 377 <tr bgcolor="#eeeeee"><td><a href="#DM_BOOLEAN_CTOR">Dm: La méthode invoque le c onstructeur inutile Boolean() ; utilisez Boolean.valueOf(...) à la place</a></td ><td>Performance</td></tr>
365 <tr bgcolor="#ffffff"><td><a href="#DM_NEW_FOR_GETCLASS">Dm: Méthode allouant un objet juste pour obtenir la classe</a></td><td>Performance</td></tr> 378 <tr bgcolor="#ffffff"><td><a href="#DM_GC">Dm: Ramasse-miettes explicite ; extrê mement douteux sauf dans du code de banc d'essai</a></td><td>Performance</td></t r>
366 <tr bgcolor="#eeeeee"><td><a href="#DM_NEXTINT_VIA_NEXTDOUBLE">Dm: Utiliser la m éthode nextInt de Random plutôt que nextDouble pour générer un entier aléatoire< /a></td><td>Performance</td></tr> 379 <tr bgcolor="#eeeeee"><td><a href="#DM_NEW_FOR_GETCLASS">Dm: Méthode allouant un objet juste pour obtenir la classe</a></td><td>Performance</td></tr>
367 <tr bgcolor="#ffffff"><td><a href="#DM_STRING_CTOR">Dm: La méthode invoque le co nstructeur inutile String(String) ; utilisez juste l'argument</a></td><td>Perfor mance</td></tr> 380 <tr bgcolor="#ffffff"><td><a href="#DM_NEXTINT_VIA_NEXTDOUBLE">Dm: Utiliser la m éthode nextInt de Random plutôt que nextDouble pour générer un entier aléatoire< /a></td><td>Performance</td></tr>
368 <tr bgcolor="#eeeeee"><td><a href="#DM_STRING_TOSTRING">Dm: La méthode appel toS tring() sur un objet String ; utilisez directement l'objet String</a></td><td>Pe rformance</td></tr> 381 <tr bgcolor="#eeeeee"><td><a href="#DM_STRING_CTOR">Dm: La méthode invoque le co nstructeur inutile String(String) ; utilisez juste l'argument</a></td><td>Perfor mance</td></tr>
369 <tr bgcolor="#ffffff"><td><a href="#DM_STRING_VOID_CTOR">Dm: La méthode invoque le constructeur inutile String() ; utilisez juste ""</a></td><td>Performance</td ></tr> 382 <tr bgcolor="#ffffff"><td><a href="#DM_STRING_TOSTRING">Dm: La méthode appel toS tring() sur un objet String ; utilisez directement l'objet String</a></td><td>Pe rformance</td></tr>
370 <tr bgcolor="#eeeeee"><td><a href="#HSC_HUGE_SHARED_STRING_CONSTANT">HSC: Huge s tring constants is duplicated across multiple class files</a></td><td>Performanc e</td></tr> 383 <tr bgcolor="#eeeeee"><td><a href="#DM_STRING_VOID_CTOR">Dm: La méthode invoque le constructeur inutile String() ; utilisez juste ""</a></td><td>Performance</td ></tr>
371 <tr bgcolor="#ffffff"><td><a href="#IIO_INEFFICIENT_INDEX_OF">IIO: Inefficient u se of String.indexOf(String)</a></td><td>Performance</td></tr> 384 <tr bgcolor="#ffffff"><td><a href="#HSC_HUGE_SHARED_STRING_CONSTANT">HSC: Huge s tring constants is duplicated across multiple class files</a></td><td>Performanc e</td></tr>
372 <tr bgcolor="#eeeeee"><td><a href="#IIO_INEFFICIENT_LAST_INDEX_OF">IIO: Ineffici ent use of String.lastIndexOf(String)</a></td><td>Performance</td></tr>
373 <tr bgcolor="#ffffff"><td><a href="#ITA_INEFFICIENT_TO_ARRAY">ITA: La méthode ut ilise toArray() avec un tableau vide en paramètre</a></td><td>Performance</td></ tr>
374 <tr bgcolor="#eeeeee"><td><a href="#SBSC_USE_STRINGBUFFER_CONCATENATION">SBSC: L a méthode concatène des chaînes au moyen de + en boucle</a></td><td>Performance< /td></tr> 385 <tr bgcolor="#eeeeee"><td><a href="#SBSC_USE_STRINGBUFFER_CONCATENATION">SBSC: L a méthode concatène des chaînes au moyen de + en boucle</a></td><td>Performance< /td></tr>
375 <tr bgcolor="#ffffff"><td><a href="#SIC_INNER_SHOULD_BE_STATIC">SIC: Devrait êtr e une classe interne statique</a></td><td>Performance</td></tr> 386 <tr bgcolor="#ffffff"><td><a href="#SIC_INNER_SHOULD_BE_STATIC">SIC: Devrait êtr e une classe interne statique</a></td><td>Performance</td></tr>
376 <tr bgcolor="#eeeeee"><td><a href="#SIC_INNER_SHOULD_BE_STATIC_ANON">SIC: Peut-ê tre transformée en classe interne statique nommée</a></td><td>Performance</td></ tr> 387 <tr bgcolor="#eeeeee"><td><a href="#SIC_INNER_SHOULD_BE_STATIC_ANON">SIC: Peut-ê tre transformée en classe interne statique nommée</a></td><td>Performance</td></ tr>
377 <tr bgcolor="#ffffff"><td><a href="#SIC_INNER_SHOULD_BE_STATIC_NEEDS_THIS">SIC: Pourrait-être transformée en classe interne statique</a></td><td>Performance</td ></tr> 388 <tr bgcolor="#ffffff"><td><a href="#SIC_INNER_SHOULD_BE_STATIC_NEEDS_THIS">SIC: Pourrait-être transformée en classe interne statique</a></td><td>Performance</td ></tr>
378 <tr bgcolor="#eeeeee"><td><a href="#SS_SHOULD_BE_STATIC">SS: Champ non lu : devr ait-il être statique ?</a></td><td>Performance</td></tr> 389 <tr bgcolor="#eeeeee"><td><a href="#SS_SHOULD_BE_STATIC">SS: Champ non lu : devr ait-il être statique ?</a></td><td>Performance</td></tr>
379 <tr bgcolor="#ffffff"><td><a href="#UM_UNNECESSARY_MATH">UM: Appel d'une méthode statique de la classe Math sur une valeur constante</a></td><td>Performance</td ></tr> 390 <tr bgcolor="#ffffff"><td><a href="#UM_UNNECESSARY_MATH">UM: Appel d'une méthode statique de la classe Math sur une valeur constante</a></td><td>Performance</td ></tr>
380 <tr bgcolor="#eeeeee"><td><a href="#UPM_UNCALLED_PRIVATE_METHOD">UPM: Méthode pr ivée jamais appelée</a></td><td>Performance</td></tr> 391 <tr bgcolor="#eeeeee"><td><a href="#UPM_UNCALLED_PRIVATE_METHOD">UPM: Méthode pr ivée jamais appelée</a></td><td>Performance</td></tr>
381 <tr bgcolor="#ffffff"><td><a href="#URF_UNREAD_FIELD">UrF: Champ inutilisé</a></ td><td>Performance</td></tr> 392 <tr bgcolor="#ffffff"><td><a href="#URF_UNREAD_FIELD">UrF: Champ inutilisé</a></ td><td>Performance</td></tr>
382 <tr bgcolor="#eeeeee"><td><a href="#UUF_UNUSED_FIELD">UuF: Champ inutilisé</a></ td><td>Performance</td></tr> 393 <tr bgcolor="#eeeeee"><td><a href="#UUF_UNUSED_FIELD">UuF: Champ inutilisé</a></ td><td>Performance</td></tr>
383 <tr bgcolor="#ffffff"><td><a href="#WMI_WRONG_MAP_ITERATOR">WMI: Utilisation ine fficace d'un itérateur sur keySet au lieu de entrySet</a></td><td>Performance</t d></tr> 394 <tr bgcolor="#ffffff"><td><a href="#WMI_WRONG_MAP_ITERATOR">WMI: Utilisation ine fficace d'un itérateur sur keySet au lieu de entrySet</a></td><td>Performance</t d></tr>
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
424 <tr bgcolor="#eeeeee"><td><a href="#INT_VACUOUS_COMPARISON">INT: Comparaison inu tile de valeurs entières</a></td><td>Dodgy code</td></tr> 435 <tr bgcolor="#eeeeee"><td><a href="#INT_VACUOUS_COMPARISON">INT: Comparaison inu tile de valeurs entières</a></td><td>Dodgy code</td></tr>
425 <tr bgcolor="#ffffff"><td><a href="#MTIA_SUSPECT_SERVLET_INSTANCE_FIELD">MTIA: L a classe hérite de Servlet et utilise les variables de l'instance.</a></td><td>D odgy code</td></tr> 436 <tr bgcolor="#ffffff"><td><a href="#MTIA_SUSPECT_SERVLET_INSTANCE_FIELD">MTIA: L a classe hérite de Servlet et utilise les variables de l'instance.</a></td><td>D odgy code</td></tr>
426 <tr bgcolor="#eeeeee"><td><a href="#MTIA_SUSPECT_STRUTS_INSTANCE_FIELD">MTIA: La classe hérite d'une classe action Struts et utilise les variables de l'instance .</a></td><td>Dodgy code</td></tr> 437 <tr bgcolor="#eeeeee"><td><a href="#MTIA_SUSPECT_STRUTS_INSTANCE_FIELD">MTIA: La classe hérite d'une classe action Struts et utilise les variables de l'instance .</a></td><td>Dodgy code</td></tr>
427 <tr bgcolor="#ffffff"><td><a href="#NP_DEREFERENCE_OF_READLINE_VALUE">NP: Derefe rence of the result of readLine() without nullcheck</a></td><td>Dodgy code</td>< /tr> 438 <tr bgcolor="#ffffff"><td><a href="#NP_DEREFERENCE_OF_READLINE_VALUE">NP: Derefe rence of the result of readLine() without nullcheck</a></td><td>Dodgy code</td>< /tr>
428 <tr bgcolor="#eeeeee"><td><a href="#NP_IMMEDIATE_DEREFERENCE_OF_READLINE">NP: Dé référencement immédiat du résultat d'un readLine()</a></td><td>Dodgy code</td></ tr> 439 <tr bgcolor="#eeeeee"><td><a href="#NP_IMMEDIATE_DEREFERENCE_OF_READLINE">NP: Dé référencement immédiat du résultat d'un readLine()</a></td><td>Dodgy code</td></ tr>
429 <tr bgcolor="#ffffff"><td><a href="#NP_LOAD_OF_KNOWN_NULL_VALUE">NP: Chargement d'une valeur connue pour être à null</a></td><td>Dodgy code</td></tr> 440 <tr bgcolor="#ffffff"><td><a href="#NP_LOAD_OF_KNOWN_NULL_VALUE">NP: Chargement d'une valeur connue pour être à null</a></td><td>Dodgy code</td></tr>
430 <tr bgcolor="#eeeeee"><td><a href="#NP_METHOD_PARAMETER_TIGHTENS_ANNOTATION">NP: Method tightens nullness annotation on parameter</a></td><td>Dodgy code</td></t r> 441 <tr bgcolor="#eeeeee"><td><a href="#NP_METHOD_PARAMETER_TIGHTENS_ANNOTATION">NP: Method tightens nullness annotation on parameter</a></td><td>Dodgy code</td></t r>
431 <tr bgcolor="#ffffff"><td><a href="#NP_METHOD_RETURN_RELAXING_ANNOTATION">NP: Me thod relaxes nullness annotation on return value</a></td><td>Dodgy code</td></tr > 442 <tr bgcolor="#ffffff"><td><a href="#NP_METHOD_RETURN_RELAXING_ANNOTATION">NP: Me thod relaxes nullness annotation on return value</a></td><td>Dodgy code</td></tr >
432 <tr bgcolor="#eeeeee"><td><a href="#NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE">NP: Pointeur à null renvoyé par une méthode qui risque d'être déréférencé</a></td><t d>Dodgy code</td></tr> 443 <tr bgcolor="#eeeeee"><td><a href="#NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE">NP: Pointeur à null renvoyé par une méthode qui risque d'être déréférencé</a></td><t d>Dodgy code</td></tr>
433 <tr bgcolor="#ffffff"><td><a href="#NP_NULL_ON_SOME_PATH_MIGHT_BE_INFEASIBLE">NP : Possible null pointer dereference on branch that might be infeasible</a></td>< td>Dodgy code</td></tr> 444 <tr bgcolor="#ffffff"><td><a href="#NP_NULL_ON_SOME_PATH_MIGHT_BE_INFEASIBLE">NP : Possible null pointer dereference on branch that might be infeasible</a></td>< td>Dodgy code</td></tr>
434 <tr bgcolor="#eeeeee"><td><a href="#NP_PARAMETER_MUST_BE_NONNULL_BUT_MARKED_AS_N ULLABLE">NP: Parameter must be nonnull but is marked as nullable</a></td><td>Dod gy code</td></tr> 445 <tr bgcolor="#eeeeee"><td><a href="#NP_PARAMETER_MUST_BE_NONNULL_BUT_MARKED_AS_N ULLABLE">NP: Parameter must be non-null but is marked as nullable</a></td><td>Do dgy code</td></tr>
435 <tr bgcolor="#ffffff"><td><a href="#NP_UNWRITTEN_PUBLIC_OR_PROTECTED_FIELD">NP: Read of unwritten public or protected field</a></td><td>Dodgy code</td></tr> 446 <tr bgcolor="#ffffff"><td><a href="#NP_UNWRITTEN_PUBLIC_OR_PROTECTED_FIELD">NP: Read of unwritten public or protected field</a></td><td>Dodgy code</td></tr>
436 <tr bgcolor="#eeeeee"><td><a href="#NS_DANGEROUS_NON_SHORT_CIRCUIT">NS: Potentia lly dangerous use of non-short-circuit logic</a></td><td>Dodgy code</td></tr> 447 <tr bgcolor="#eeeeee"><td><a href="#NS_DANGEROUS_NON_SHORT_CIRCUIT">NS: Potentia lly dangerous use of non-short-circuit logic</a></td><td>Dodgy code</td></tr>
437 <tr bgcolor="#ffffff"><td><a href="#NS_NON_SHORT_CIRCUIT">NS: Utilisation discut able de logique binaire</a></td><td>Dodgy code</td></tr> 448 <tr bgcolor="#ffffff"><td><a href="#NS_NON_SHORT_CIRCUIT">NS: Utilisation discut able de logique binaire</a></td><td>Dodgy code</td></tr>
438 <tr bgcolor="#eeeeee"><td><a href="#PZLA_PREFER_ZERO_LENGTH_ARRAYS">PZLA: Envisa gez de renvoyer un tableau vide plutôt que null</a></td><td>Dodgy code</td></tr> 449 <tr bgcolor="#eeeeee"><td><a href="#PZLA_PREFER_ZERO_LENGTH_ARRAYS">PZLA: Envisa gez de renvoyer un tableau vide plutôt que null</a></td><td>Dodgy code</td></tr>
439 <tr bgcolor="#ffffff"><td><a href="#QF_QUESTIONABLE_FOR_LOOP">QF: Incrémentation compliquée, subtile au incorrecte dans une boucle for</a></td><td>Dodgy code</t d></tr> 450 <tr bgcolor="#ffffff"><td><a href="#QF_QUESTIONABLE_FOR_LOOP">QF: Incrémentation compliquée, subtile au incorrecte dans une boucle for</a></td><td>Dodgy code</t d></tr>
440 <tr bgcolor="#eeeeee"><td><a href="#RCN_REDUNDANT_COMPARISON_OF_NULL_AND_NONNULL _VALUE">RCN: Comparaison redondante d'une valeur non nulle avec null</a></td><td >Dodgy code</td></tr> 451 <tr bgcolor="#eeeeee"><td><a href="#RCN_REDUNDANT_COMPARISON_OF_NULL_AND_NONNULL _VALUE">RCN: Comparaison redondante d'une valeur non nulle avec null</a></td><td >Dodgy code</td></tr>
441 <tr bgcolor="#ffffff"><td><a href="#RCN_REDUNDANT_COMPARISON_TWO_NULL_VALUES">RC N: Comparaison redondante de deux valeurs nulles</a></td><td>Dodgy code</td></tr > 452 <tr bgcolor="#ffffff"><td><a href="#RCN_REDUNDANT_COMPARISON_TWO_NULL_VALUES">RC N: Comparaison redondante de deux valeurs nulles</a></td><td>Dodgy code</td></tr >
442 <tr bgcolor="#eeeeee"><td><a href="#RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE">RC N: Test de nullité redondant sur une valeur non nulle</a></td><td>Dodgy code</td ></tr> 453 <tr bgcolor="#eeeeee"><td><a href="#RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE">RC N: Test de nullité redondant sur une valeur non nulle</a></td><td>Dodgy code</td ></tr>
443 <tr bgcolor="#ffffff"><td><a href="#RCN_REDUNDANT_NULLCHECK_OF_NULL_VALUE">RCN: Test de nullité redondant sur une valeur connue pour être à null</a></td><td>Dod gy code</td></tr> 454 <tr bgcolor="#ffffff"><td><a href="#RCN_REDUNDANT_NULLCHECK_OF_NULL_VALUE">RCN: Test de nullité redondant sur une valeur connue pour être à null</a></td><td>Dod gy code</td></tr>
444 <tr bgcolor="#eeeeee"><td><a href="#REC_CATCH_EXCEPTION">REC: java.lang.Exceptio n est intercepté alors qu'Exception n'est jamais lancé</a></td><td>Dodgy code</t d></tr> 455 <tr bgcolor="#eeeeee"><td><a href="#REC_CATCH_EXCEPTION">REC: java.lang.Exceptio n est intercepté alors qu'Exception n'est jamais lancé</a></td><td>Dodgy code</t d></tr>
445 <tr bgcolor="#ffffff"><td><a href="#RI_REDUNDANT_INTERFACES">RI: Classe implémen tant la même interface que sa super-classe</a></td><td>Dodgy code</td></tr> 456 <tr bgcolor="#ffffff"><td><a href="#RI_REDUNDANT_INTERFACES">RI: Classe implémen tant la même interface que sa super-classe</a></td><td>Dodgy code</td></tr>
446 <tr bgcolor="#eeeeee"><td><a href="#RV_CHECK_FOR_POSITIVE_INDEXOF">RV: Méthode v érifiant que le résultat d'un String.indexOf() est positif</a></td><td>Dodgy cod e</td></tr> 457 <tr bgcolor="#eeeeee"><td><a href="#RV_CHECK_FOR_POSITIVE_INDEXOF">RV: Méthode v érifiant que le résultat d'un String.indexOf() est positif</a></td><td>Dodgy cod e</td></tr>
447 <tr bgcolor="#ffffff"><td><a href="#RV_DONT_JUST_NULL_CHECK_READLINE">RV: Méthod e ignorant le résultat d'un readLine() après avoir vérifié qu'il est non nul</a> </td><td>Dodgy code</td></tr> 458 <tr bgcolor="#ffffff"><td><a href="#RV_DONT_JUST_NULL_CHECK_READLINE">RV: Méthod e ignorant le résultat d'un readLine() après avoir vérifié qu'il est non nul</a> </td><td>Dodgy code</td></tr>
448 <tr bgcolor="#eeeeee"><td><a href="#RV_REM_OF_HASHCODE">RV: Reste d'un hashCode pouvant être négatif</a></td><td>Dodgy code</td></tr> 459 <tr bgcolor="#eeeeee"><td><a href="#RV_REM_OF_HASHCODE">RV: Reste d'un hashCode pouvant être négatif</a></td><td>Dodgy code</td></tr>
449 <tr bgcolor="#ffffff"><td><a href="#RV_REM_OF_RANDOM_INT">RV: Reste d'un entier signé 32 bits aléeatoire</a></td><td>Dodgy code</td></tr> 460 <tr bgcolor="#ffffff"><td><a href="#RV_REM_OF_RANDOM_INT">RV: Reste d'un entier signé 32 bits aléeatoire</a></td><td>Dodgy code</td></tr>
450 <tr bgcolor="#eeeeee"><td><a href="#RV_RETURN_VALUE_IGNORED_INFERRED">RV: Method ignores return value, is this OK?</a></td><td>Dodgy code</td></tr> 461 <tr bgcolor="#eeeeee"><td><a href="#RV_RETURN_VALUE_IGNORED_INFERRED">RV: Method ignores return value, is this OK?</a></td><td>Dodgy code</td></tr>
451 <tr bgcolor="#ffffff"><td><a href="#SA_FIELD_DOUBLE_ASSIGNMENT">SA: Double assig nment of field</a></td><td>Dodgy code</td></tr> 462 <tr bgcolor="#ffffff"><td><a href="#RV_RETURN_VALUE_IGNORED_NO_SIDE_EFFECT">RV: Return value of method without side effect is ignored</a></td><td>Dodgy code</td ></tr>
452 <tr bgcolor="#eeeeee"><td><a href="#SA_LOCAL_DOUBLE_ASSIGNMENT">SA: Double assig nment of local variable </a></td><td>Dodgy code</td></tr> 463 <tr bgcolor="#eeeeee"><td><a href="#SA_FIELD_DOUBLE_ASSIGNMENT">SA: Double assig nment of field</a></td><td>Dodgy code</td></tr>
453 <tr bgcolor="#ffffff"><td><a href="#SA_LOCAL_SELF_ASSIGNMENT">SA: Auto-alimentat ion d'une variable locale</a></td><td>Dodgy code</td></tr> 464 <tr bgcolor="#ffffff"><td><a href="#SA_LOCAL_DOUBLE_ASSIGNMENT">SA: Double assig nment of local variable </a></td><td>Dodgy code</td></tr>
454 <tr bgcolor="#eeeeee"><td><a href="#SF_SWITCH_FALLTHROUGH">SF: Un switch comport e un cas qui déborde sur le suivant</a></td><td>Dodgy code</td></tr> 465 <tr bgcolor="#eeeeee"><td><a href="#SA_LOCAL_SELF_ASSIGNMENT">SA: Auto-alimentat ion d'une variable locale</a></td><td>Dodgy code</td></tr>
455 <tr bgcolor="#ffffff"><td><a href="#SF_SWITCH_NO_DEFAULT">SF: Switch statement f ound where default case is missing</a></td><td>Dodgy code</td></tr> 466 <tr bgcolor="#ffffff"><td><a href="#SF_SWITCH_FALLTHROUGH">SF: Un switch comport e un cas qui déborde sur le suivant</a></td><td>Dodgy code</td></tr>
456 <tr bgcolor="#eeeeee"><td><a href="#ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD">ST: Ecriture d'un champ statique depuis la méthode d'une instance</a></td><td>Dodgy code</td></tr> 467 <tr bgcolor="#eeeeee"><td><a href="#SF_SWITCH_NO_DEFAULT">SF: Switch statement f ound where default case is missing</a></td><td>Dodgy code</td></tr>
457 <tr bgcolor="#ffffff"><td><a href="#SE_PRIVATE_READ_RESOLVE_NOT_INHERITED">Se: P rivate readResolve method not inherited by subclasses</a></td><td>Dodgy code</td ></tr> 468 <tr bgcolor="#ffffff"><td><a href="#ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD">ST: Ecriture d'un champ statique depuis la méthode d'une instance</a></td><td>Dodgy code</td></tr>
458 <tr bgcolor="#eeeeee"><td><a href="#SE_TRANSIENT_FIELD_OF_NONSERIALIZABLE_CLASS" >Se: Transient field of class that isn't Serializable. </a></td><td>Dodgy code</ td></tr> 469 <tr bgcolor="#eeeeee"><td><a href="#SE_PRIVATE_READ_RESOLVE_NOT_INHERITED">Se: P rivate readResolve method not inherited by subclasses</a></td><td>Dodgy code</td ></tr>
459 <tr bgcolor="#ffffff"><td><a href="#TQ_EXPLICIT_UNKNOWN_SOURCE_VALUE_REACHES_ALW AYS_SINK">TQ: Value required to have type qualifier, but marked as unknown</a></ td><td>Dodgy code</td></tr> 470 <tr bgcolor="#ffffff"><td><a href="#SE_TRANSIENT_FIELD_OF_NONSERIALIZABLE_CLASS" >Se: Transient field of class that isn't Serializable. </a></td><td>Dodgy code</ td></tr>
460 <tr bgcolor="#eeeeee"><td><a href="#TQ_EXPLICIT_UNKNOWN_SOURCE_VALUE_REACHES_NEV ER_SINK">TQ: Value required to not have type qualifier, but marked as unknown</a ></td><td>Dodgy code</td></tr> 471 <tr bgcolor="#eeeeee"><td><a href="#TQ_EXPLICIT_UNKNOWN_SOURCE_VALUE_REACHES_ALW AYS_SINK">TQ: Value required to have type qualifier, but marked as unknown</a></ td><td>Dodgy code</td></tr>
472 <tr bgcolor="#ffffff"><td><a href="#TQ_EXPLICIT_UNKNOWN_SOURCE_VALUE_REACHES_NEV ER_SINK">TQ: Value required to not have type qualifier, but marked as unknown</a ></td><td>Dodgy code</td></tr>
473 <tr bgcolor="#eeeeee"><td><a href="#UC_USELESS_CONDITION">UC: Condition has no e ffect</a></td><td>Dodgy code</td></tr>
474 <tr bgcolor="#ffffff"><td><a href="#UC_USELESS_CONDITION_TYPE">UC: Condition has no effect due to the variable type</a></td><td>Dodgy code</td></tr>
475 <tr bgcolor="#eeeeee"><td><a href="#UC_USELESS_OBJECT">UC: Useless object create d</a></td><td>Dodgy code</td></tr>
476 <tr bgcolor="#ffffff"><td><a href="#UC_USELESS_OBJECT_STACK">UC: Useless object created on stack</a></td><td>Dodgy code</td></tr>
477 <tr bgcolor="#eeeeee"><td><a href="#UC_USELESS_VOID_METHOD">UC: Useless non-empt y void method</a></td><td>Dodgy code</td></tr>
461 <tr bgcolor="#ffffff"><td><a href="#UCF_USELESS_CONTROL_FLOW">UCF: Instruction d e contrôle du flux inutile</a></td><td>Dodgy code</td></tr> 478 <tr bgcolor="#ffffff"><td><a href="#UCF_USELESS_CONTROL_FLOW">UCF: Instruction d e contrôle du flux inutile</a></td><td>Dodgy code</td></tr>
462 <tr bgcolor="#eeeeee"><td><a href="#UCF_USELESS_CONTROL_FLOW_NEXT_LINE">UCF: Use less control flow to next line</a></td><td>Dodgy code</td></tr> 479 <tr bgcolor="#eeeeee"><td><a href="#UCF_USELESS_CONTROL_FLOW_NEXT_LINE">UCF: Use less control flow to next line</a></td><td>Dodgy code</td></tr>
463 <tr bgcolor="#ffffff"><td><a href="#URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD">UrF: U nread public/protected field</a></td><td>Dodgy code</td></tr> 480 <tr bgcolor="#ffffff"><td><a href="#URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD">UrF: U nread public/protected field</a></td><td>Dodgy code</td></tr>
464 <tr bgcolor="#eeeeee"><td><a href="#UUF_UNUSED_PUBLIC_OR_PROTECTED_FIELD">UuF: U nused public or protected field</a></td><td>Dodgy code</td></tr> 481 <tr bgcolor="#eeeeee"><td><a href="#UUF_UNUSED_PUBLIC_OR_PROTECTED_FIELD">UuF: U nused public or protected field</a></td><td>Dodgy code</td></tr>
465 <tr bgcolor="#ffffff"><td><a href="#UWF_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR">Uw F: Champ non initialisé dans le constructeur</a></td><td>Dodgy code</td></tr> 482 <tr bgcolor="#ffffff"><td><a href="#UWF_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR">Uw F: Champ non initialisé dans le constructeur</a></td><td>Dodgy code</td></tr>
466 <tr bgcolor="#eeeeee"><td><a href="#UWF_UNWRITTEN_PUBLIC_OR_PROTECTED_FIELD">UwF : Unwritten public or protected field</a></td><td>Dodgy code</td></tr> 483 <tr bgcolor="#eeeeee"><td><a href="#UWF_UNWRITTEN_PUBLIC_OR_PROTECTED_FIELD">UwF : Unwritten public or protected field</a></td><td>Dodgy code</td></tr>
467 <tr bgcolor="#ffffff"><td><a href="#XFB_XML_FACTORY_BYPASS">XFB: Méthode instanc iant directement une implémentation spécifique des interfaces XML</a></td><td>Do dgy code</td></tr> 484 <tr bgcolor="#ffffff"><td><a href="#XFB_XML_FACTORY_BYPASS">XFB: Méthode instanc iant directement une implémentation spécifique des interfaces XML</a></td><td>Do dgy code</td></tr>
468 </table> 485 </table>
469 <h2>Descriptions</h2> 486 <h2>Descriptions</h2>
470 <h3><a name="BC_EQUALS_METHOD_SHOULD_WORK_FOR_ALL_OBJECTS">BC: Equals method sho uld not assume anything about the type of its argument (BC_EQUALS_METHOD_SHOULD_ WORK_FOR_ALL_OBJECTS)</a></h3> 487 <h3><a name="BC_EQUALS_METHOD_SHOULD_WORK_FOR_ALL_OBJECTS">BC: Equals method sho uld not assume anything about the type of its argument (BC_EQUALS_METHOD_SHOULD_ WORK_FOR_ALL_OBJECTS)</a></h3>
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
520 537
521 <p>It's recommended to use the predefined library constant for code clarity and better precision.</p> 538 <p>It's recommended to use the predefined library constant for code clarity and better precision.</p>
522 539
523 540
524 <h3><a name="CO_ABSTRACT_SELF">Co: Une classe abstraite définit une méthode comp areTo() covariante (CO_ABSTRACT_SELF)</a></h3> 541 <h3><a name="CO_ABSTRACT_SELF">Co: Une classe abstraite définit une méthode comp areTo() covariante (CO_ABSTRACT_SELF)</a></h3>
525 542
526 543
527 <p>Cette classe définit une version covariante de <code>compareTo()</code>. Pour surcharger correctement la méthode <code>compareTo()</code> de l'interface <cod e>Comparable</code>, le paramètre de <code>compareTo()</code> doit être du type <code>java.lang.Object</code>.</p> 544 <p>Cette classe définit une version covariante de <code>compareTo()</code>. Pour surcharger correctement la méthode <code>compareTo()</code> de l'interface <cod e>Comparable</code>, le paramètre de <code>compareTo()</code> doit être du type <code>java.lang.Object</code>.</p>
528 545
529 546
547 <h3><a name="CO_COMPARETO_INCORRECT_FLOATING">Co: compareTo()/compare() incorrec tly handles float or double value (CO_COMPARETO_INCORRECT_FLOATING)</a></h3>
548
549
550 <p>This method compares double or float values using pattern like this: val1 & gt; val2 ? 1 : val1 &lt; val2 ? -1 : 0.
551 This pattern works incorrectly for -0.0 and NaN values which may result in incor rect sorting result or broken collection
552 (if compared values are used as keys). Consider using Double.compare or Float.co mpare static methods which handle all
553 the special cases correctly.</p>
554
555
556 <h3><a name="CO_COMPARETO_RESULTS_MIN_VALUE">Co: compareTo()/compare() returns I nteger.MIN_VALUE (CO_COMPARETO_RESULTS_MIN_VALUE)</a></h3>
557
558
559 <p> In some situation, this compareTo or compare method returns
560 the constant Integer.MIN_VALUE, which is an exceptionally bad practice.
561 The only thing that matters about the return value of compareTo is the sign of the result.
562 But people will sometimes negate the return value of compareTo, expecting th at this will negate
563 the sign of the result. And it will, except in the case where the value retu rned is Integer.MIN_VALUE.
564 So just return -1 rather than Integer.MIN_VALUE.
565
566
530 <h3><a name="CO_SELF_NO_OBJECT">Co: Définition d'une méthode compareTo() covaria nte (CO_SELF_NO_OBJECT)</a></h3> 567 <h3><a name="CO_SELF_NO_OBJECT">Co: Définition d'une méthode compareTo() covaria nte (CO_SELF_NO_OBJECT)</a></h3>
531 568
532 569
533 <p>Cette classe définit une version covariante de <code>compareTo()</code>. Pour correctement surcharger la méthode <code>compareTo() </code>de l'interface <cod e>Comparable</code>, le paramètre de <code>compareTo()</code> doit être du type <code>java.lang.Object</code>.</p> 570 <p>Cette classe définit une version covariante de <code>compareTo()</code>. Pour correctement surcharger la méthode <code>compareTo() </code>de l'interface <cod e>Comparable</code>, le paramètre de <code>compareTo()</code> doit être du type <code>java.lang.Object</code>.</p>
534 571
535 572
536 <h3><a name="DE_MIGHT_DROP">DE: La méthode peut déclencher une exception (DE_MIG HT_DROP)</a></h3> 573 <h3><a name="DE_MIGHT_DROP">DE: La méthode peut déclencher une exception (DE_MIG HT_DROP)</a></h3>
537 574
538 575
539 <p>Cette méthode peut déclencher une exception. En général, les exceptions doive nt être gérées ou transmises hors de la méthode.</p> 576 <p>Cette méthode peut déclencher une exception. En général, les exceptions doive nt être gérées ou transmises hors de la méthode.</p>
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
642 679
643 <h3><a name="EQ_COMPARETO_USE_OBJECT_EQUALS">Eq: Class defines compareTo(...) an d uses Object.equals() (EQ_COMPARETO_USE_OBJECT_EQUALS)</a></h3> 680 <h3><a name="EQ_COMPARETO_USE_OBJECT_EQUALS">Eq: Class defines compareTo(...) an d uses Object.equals() (EQ_COMPARETO_USE_OBJECT_EQUALS)</a></h3>
644 681
645 682
646 <p> This class defines a <code>compareTo(...)</code> method but inherits its 683 <p> This class defines a <code>compareTo(...)</code> method but inherits its
647 <code>equals()</code> method from <code>java.lang.Object</code>. 684 <code>equals()</code> method from <code>java.lang.Object</code>.
648 Generally, the value of compareTo should return zero if and only if 685 Generally, the value of compareTo should return zero if and only if
649 equals returns true. If this is violated, weird and unpredictable 686 equals returns true. If this is violated, weird and unpredictable
650 failures will occur in classes such as PriorityQueue. 687 failures will occur in classes such as PriorityQueue.
651 In Java 5 the PriorityQueue.remove method uses the compareTo method, 688 In Java 5 the PriorityQueue.remove method uses the compareTo method,
652 while in Java 6 it uses the equals method. 689 while in Java 6 it uses the equals method.</p>
653 690
654 <p>From the JavaDoc for the compareTo method in the Comparable interface: 691 <p>From the JavaDoc for the compareTo method in the Comparable interface:
655 <blockquote> 692 <blockquote>
656 It is strongly recommended, but not strictly required that <code>(x.compareTo(y) ==0) == (x.equals(y))</code>. 693 It is strongly recommended, but not strictly required that <code>(x.compareTo(y) ==0) == (x.equals(y))</code>.
657 Generally speaking, any class that implements the Comparable interface and viola tes this condition 694 Generally speaking, any class that implements the Comparable interface and viola tes this condition
658 should clearly indicate this fact. The recommended language 695 should clearly indicate this fact. The recommended language
659 is "Note: this class has a natural ordering that is inconsistent with equals." 696 is "Note: this class has a natural ordering that is inconsistent with equals."
660 </blockquote> 697 </blockquote></p>
661 698
662 699
663 <h3><a name="EQ_GETCLASS_AND_CLASS_CONSTANT">Eq: equals method fails for subtype s (EQ_GETCLASS_AND_CLASS_CONSTANT)</a></h3> 700 <h3><a name="EQ_GETCLASS_AND_CLASS_CONSTANT">Eq: equals method fails for subtype s (EQ_GETCLASS_AND_CLASS_CONSTANT)</a></h3>
664 701
665 702
666 <p> This class has an equals method that will be broken if it is inherited by subclasses. 703 <p> This class has an equals method that will be broken if it is inherited by subclasses.
667 It compares a class literal with the class of the argument (e.g., in class <code >Foo</code> 704 It compares a class literal with the class of the argument (e.g., in class <code >Foo</code>
668 it might check if <code>Foo.class == o.getClass()</code>). 705 it might check if <code>Foo.class == o.getClass()</code>).
669 It is better to check if <code>this.getClass() == o.getClass()</code>. 706 It is better to check if <code>this.getClass() == o.getClass()</code>.
670 </p> 707 </p>
(...skipping 14 matching lines...) Expand all
685 <h3><a name="FI_EXPLICIT_INVOCATION">FI: Invocation explicite d'un finaliseur (F I_EXPLICIT_INVOCATION)</a></h3> 722 <h3><a name="FI_EXPLICIT_INVOCATION">FI: Invocation explicite d'un finaliseur (F I_EXPLICIT_INVOCATION)</a></h3>
686 723
687 724
688 <p>Cette méthode contient un appel explicite à la méthode <code>finalize()</code > d'un objet. Les méthodes <code>finalize()</code> étant sensées n'être appelées qu'une fois, et uniquement par la JVM, c'est une mauvaise idée.</p> 725 <p>Cette méthode contient un appel explicite à la méthode <code>finalize()</code > d'un objet. Les méthodes <code>finalize()</code> étant sensées n'être appelées qu'une fois, et uniquement par la JVM, c'est une mauvaise idée.</p>
689 726
690 727
691 <h3><a name="FI_FINALIZER_NULLS_FIELDS">FI: Finalizer nulls fields (FI_FINALIZER _NULLS_FIELDS)</a></h3> 728 <h3><a name="FI_FINALIZER_NULLS_FIELDS">FI: Finalizer nulls fields (FI_FINALIZER _NULLS_FIELDS)</a></h3>
692 729
693 730
694 <p> This finalizer nulls out fields. This is usually an error, as it does not aid garbage collection, 731 <p> This finalizer nulls out fields. This is usually an error, as it does not aid garbage collection,
695 and the object is going to be garbage collected anyway. 732 and the object is going to be garbage collected anyway.</p>
696 733
697 734
698 <h3><a name="FI_FINALIZER_ONLY_NULLS_FIELDS">FI: Finalizer only nulls fields (FI _FINALIZER_ONLY_NULLS_FIELDS)</a></h3> 735 <h3><a name="FI_FINALIZER_ONLY_NULLS_FIELDS">FI: Finalizer only nulls fields (FI _FINALIZER_ONLY_NULLS_FIELDS)</a></h3>
699 736
700 737
701 <p> This finalizer does nothing except null out fields. This is completely poi ntless, and requires that 738 <p> This finalizer does nothing except null out fields. This is completely poi ntless, and requires that
702 the object be garbage collected, finalized, and then garbage collected again. Yo u should just remove the finalize 739 the object be garbage collected, finalized, and then garbage collected again. Yo u should just remove the finalize
703 method. 740 method.</p>
704 741
705 742
706 <h3><a name="FI_MISSING_SUPER_CALL">FI: Le finaliseur n'appelle pas le finaliseu r de la super-classe (FI_MISSING_SUPER_CALL)</a></h3> 743 <h3><a name="FI_MISSING_SUPER_CALL">FI: Le finaliseur n'appelle pas le finaliseu r de la super-classe (FI_MISSING_SUPER_CALL)</a></h3>
707 744
708 745
709 <p>Cette méthode <code>finalize()</code> n'appelle pas la méthode <code>finalize ()</code> de sa classe mère ; donc toutes les actions définies au niveau de la c lasse mère seront ignorées. Ajoutez un appel à <code>super.finalize()</code>.</p > 746 <p>Cette méthode <code>finalize()</code> n'appelle pas la méthode <code>finalize ()</code> de sa classe mère ; donc toutes les actions définies au niveau de la c lasse mère seront ignorées. Ajoutez un appel à <code>super.finalize()</code>.</p >
710 747
711 748
712 <h3><a name="FI_NULLIFY_SUPER">FI: Un finaliseur rend inutile celui de sa super- classe (FI_NULLIFY_SUPER)</a></h3> 749 <h3><a name="FI_NULLIFY_SUPER">FI: Un finaliseur rend inutile celui de sa super- classe (FI_NULLIFY_SUPER)</a></h3>
713 750
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
824 861
825 <p>Ce code semble stocker un objet non sérialisable dans un <code>HttpSession</c ode>. Une erreur se produira si cette session est rendue passive ou migrée.</p> 862 <p>Ce code semble stocker un objet non sérialisable dans un <code>HttpSession</c ode>. Une erreur se produira si cette session est rendue passive ou migrée.</p>
826 863
827 864
828 <h3><a name="JCIP_FIELD_ISNT_FINAL_IN_IMMUTABLE_CLASS">JCIP: Les champs d'une cl asse immuable devraient être finaux. (JCIP_FIELD_ISNT_FINAL_IN_IMMUTABLE_CLASS)< /a></h3> 865 <h3><a name="JCIP_FIELD_ISNT_FINAL_IN_IMMUTABLE_CLASS">JCIP: Les champs d'une cl asse immuable devraient être finaux. (JCIP_FIELD_ISNT_FINAL_IN_IMMUTABLE_CLASS)< /a></h3>
829 866
830 867
831 La classe est annotée avec <code>net.jcip.annotations.Immutable</code>, et la rè gle liée à cette annotation réclame que tous les champs soient marqués <code>fin al</code>. 868 La classe est annotée avec <code>net.jcip.annotations.Immutable</code>, et la rè gle liée à cette annotation réclame que tous les champs soient marqués <code>fin al</code>.
832 869
833 870
871 <h3><a name="ME_ENUM_FIELD_SETTER">ME: Public enum method unconditionally sets i ts field (ME_ENUM_FIELD_SETTER)</a></h3>
872
873
874 <p>This public method declared in public enum unconditionally sets enum field, thus this field can be changed by malicious code
875 or by accident from another package. Though mutable enum fields may be used fo r lazy initialization, it's a bad practice to expose them to the outer world.
876 Consider removing this method or declaring it package-private.</p>
877
878
879 <h3><a name="ME_MUTABLE_ENUM_FIELD">ME: Enum field is public and mutable (ME_MUT ABLE_ENUM_FIELD)</a></h3>
880
881
882 <p>A mutable public field is defined inside a public enum, thus can be changed by malicious code or by accident from another package.
883 Though mutable enum fields may be used for lazy initialization, it's a bad pra ctice to expose them to the outer world.
884 Consider declaring this field final and/or package-private.</p>
885
886
834 <h3><a name="NP_BOOLEAN_RETURN_NULL">NP: Method with Boolean return type returns explicit null (NP_BOOLEAN_RETURN_NULL)</a></h3> 887 <h3><a name="NP_BOOLEAN_RETURN_NULL">NP: Method with Boolean return type returns explicit null (NP_BOOLEAN_RETURN_NULL)</a></h3>
835 888
836 889
837 <p> 890 <p>
838 A method that returns either Boolean.TRUE, Boolean.FALSE or null is an accid ent waiting to happen. 891 A method that returns either Boolean.TRUE, Boolean.FALSE or null is an accid ent waiting to happen.
839 This method can be invoked as though it returned a value of type boolean, an d 892 This method can be invoked as though it returned a value of type boolean, an d
840 the compiler will insert automatic unboxing of the Boolean value. If a null value is returned, 893 the compiler will insert automatic unboxing of the Boolean value. If a null value is returned,
841 this will result in a NullPointerException. 894 this will result in a NullPointerException.
842 </p> 895 </p>
843 896
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
915 <p>Les noms de méthodes devraient être des verbes en minuscules, avec la premièr e lettre des mots, après le premier, en majuscules.</p> 968 <p>Les noms de méthodes devraient être des verbes en minuscules, avec la premièr e lettre des mots, après le premier, en majuscules.</p>
916 969
917 970
918 <h3><a name="NM_SAME_SIMPLE_NAME_AS_INTERFACE">Nm: Class names shouldn't shadow simple name of implemented interface (NM_SAME_SIMPLE_NAME_AS_INTERFACE)</a></h3> 971 <h3><a name="NM_SAME_SIMPLE_NAME_AS_INTERFACE">Nm: Class names shouldn't shadow simple name of implemented interface (NM_SAME_SIMPLE_NAME_AS_INTERFACE)</a></h3>
919 972
920 973
921 <p> This class/interface has a simple name that is identical to that of an imp lemented/extended interface, except 974 <p> This class/interface has a simple name that is identical to that of an imp lemented/extended interface, except
922 that the interface is in a different package (e.g., <code>alpha.Foo</code> exten ds <code>beta.Foo</code>). 975 that the interface is in a different package (e.g., <code>alpha.Foo</code> exten ds <code>beta.Foo</code>).
923 This can be exceptionally confusing, create lots of situations in which you have to look at import statements 976 This can be exceptionally confusing, create lots of situations in which you have to look at import statements
924 to resolve references and creates many 977 to resolve references and creates many
925 opportunities to accidently define methods that do not override methods in their superclasses. 978 opportunities to accidentally define methods that do not override methods in the ir superclasses.
926 </p> 979 </p>
927 980
928 981
929 <h3><a name="NM_SAME_SIMPLE_NAME_AS_SUPERCLASS">Nm: Class names shouldn't shadow simple name of superclass (NM_SAME_SIMPLE_NAME_AS_SUPERCLASS)</a></h3> 982 <h3><a name="NM_SAME_SIMPLE_NAME_AS_SUPERCLASS">Nm: Class names shouldn't shadow simple name of superclass (NM_SAME_SIMPLE_NAME_AS_SUPERCLASS)</a></h3>
930 983
931 984
932 <p> This class has a simple name that is identical to that of its superclass, except 985 <p> This class has a simple name that is identical to that of its superclass, except
933 that its superclass is in a different package (e.g., <code>alpha.Foo</code> exte nds <code>beta.Foo</code>). 986 that its superclass is in a different package (e.g., <code>alpha.Foo</code> exte nds <code>beta.Foo</code>).
934 This can be exceptionally confusing, create lots of situations in which you have to look at import statements 987 This can be exceptionally confusing, create lots of situations in which you have to look at import statements
935 to resolve references and creates many 988 to resolve references and creates many
936 opportunities to accidently define methods that do not override methods in their superclasses. 989 opportunities to accidentally define methods that do not override methods in the ir superclasses.
937 </p> 990 </p>
938 991
939 992
940 <h3><a name="NM_VERY_CONFUSING_INTENTIONAL">Nm: Very confusing method names (but perhaps intentional) (NM_VERY_CONFUSING_INTENTIONAL)</a></h3> 993 <h3><a name="NM_VERY_CONFUSING_INTENTIONAL">Nm: Very confusing method names (but perhaps intentional) (NM_VERY_CONFUSING_INTENTIONAL)</a></h3>
941 994
942 995
943 <p> The referenced methods have names that differ only by capitalization. 996 <p> The referenced methods have names that differ only by capitalization.
944 This is very confusing because if the capitalization were 997 This is very confusing because if the capitalization were
945 identical then one of the methods would override the other. From the existence o f other methods, it 998 identical then one of the methods would override the other. From the existence o f other methods, it
946 seems that the existence of both of these methods is intentional, but is sure is confusing. 999 seems that the existence of both of these methods is intentional, but is sure is confusing.
(...skipping 358 matching lines...) Expand 10 before | Expand all | Expand 10 after
1305 <em>Boris Bokowski</em> 1358 <em>Boris Bokowski</em>
1306 </p> 1359 </p>
1307 1360
1308 1361
1309 <h3><a name="BOA_BADLY_OVERRIDDEN_ADAPTER">BOA: La classe surcharge mal une méth ode implémentée dans une superclasse Adapter (BOA_BADLY_OVERRIDDEN_ADAPTER)</a>< /h3> 1362 <h3><a name="BOA_BADLY_OVERRIDDEN_ADAPTER">BOA: La classe surcharge mal une méth ode implémentée dans une superclasse Adapter (BOA_BADLY_OVERRIDDEN_ADAPTER)</a>< /h3>
1310 1363
1311 1364
1312 <p>Cette méthode surcharge une méthode provenant d'une classe mère qui est un <c ode>Adapter</code> qui implémente un <code>Listener</code> défini dans le paquet age <code>java.awt.event</code> ou <code>javax.swing.event</code>. En conséquenc e, cette méthode ne sera pas appelée quand l'évènement se produira.</p> 1365 <p>Cette méthode surcharge une méthode provenant d'une classe mère qui est un <c ode>Adapter</code> qui implémente un <code>Listener</code> défini dans le paquet age <code>java.awt.event</code> ou <code>javax.swing.event</code>. En conséquenc e, cette méthode ne sera pas appelée quand l'évènement se produira.</p>
1313 1366
1314 1367
1368 <h3><a name="BSHIFT_WRONG_ADD_PRIORITY">BSHIFT: Possible bad parsing of shift op eration (BSHIFT_WRONG_ADD_PRIORITY)</a></h3>
1369
1370
1371 <p>
1372 The code performs an operation like (x &lt;&lt; 8 + y). Although this might be c orrect, probably it was meant
1373 to perform (x &lt;&lt; 8) + y, but shift operation has
1374 a lower precedence, so it's actually parsed as x &lt;&lt; (8 + y).
1375 </p>
1376
1377
1315 <h3><a name="ICAST_BAD_SHIFT_AMOUNT">BSHIFT: Décalage d'un int hors de proportio n (0..31) (ICAST_BAD_SHIFT_AMOUNT)</a></h3> 1378 <h3><a name="ICAST_BAD_SHIFT_AMOUNT">BSHIFT: Décalage d'un int hors de proportio n (0..31) (ICAST_BAD_SHIFT_AMOUNT)</a></h3>
1316 1379
1317 1380
1318 <p>Un décalage de n bits est effectué avec n hors des limites (0..31). Ceci résu lte en l'utilisation des 5 bits inférieurs de l'entier pour décider de la valeur du décalage. Ce n'est sans doute pas l'effet recherché et est pour le moins sou rce de confusion.</p> 1381 <p>Un décalage de n bits est effectué avec n hors des limites (0..31). Ceci résu lte en l'utilisation des 5 bits inférieurs de l'entier pour décider de la valeur du décalage. Ce n'est sans doute pas l'effet recherché et est pour le moins sou rce de confusion.</p>
1319 1382
1320 1383
1321 <h3><a name="BX_UNBOXED_AND_COERCED_FOR_TERNARY_OPERATOR">Bx: Primitive value is unboxed and coerced for ternary operator (BX_UNBOXED_AND_COERCED_FOR_TERNARY_OP ERATOR)</a></h3>
1322
1323
1324 <p>A wrapped primitive value is unboxed and converted to another primitive typ e as part of the
1325 evaluation of a conditional ternary operator (the <code> b ? e1 : e2</code> oper ator). The
1326 semantics of Java mandate that if <code>e1</code> and <code>e2</code> are wrappe d
1327 numeric values, the values are unboxed and converted/coerced to their common typ e (e.g,
1328 if <code>e1</code> is of type <code>Integer</code>
1329 and <code>e2</code> is of type <code>Float</code>, then <code>e1</code> is unbox ed,
1330 converted to a floating point value, and boxed. See JLS Section 15.25.
1331 </p>
1332
1333
1334 <h3><a name="CO_COMPARETO_RESULTS_MIN_VALUE">Co: compareTo()/compare() returns I nteger.MIN_VALUE (CO_COMPARETO_RESULTS_MIN_VALUE)</a></h3>
1335
1336
1337 <p> In some situation, this compareTo or compare method returns
1338 the constant Integer.MIN_VALUE, which is an exceptionally bad practice.
1339 The only thing that matters about the return value of compareTo is the sign of the result.
1340 But people will sometimes negate the return value of compareTo, expecting th at this will negate
1341 the sign of the result. And it will, except in the case where the value retu rned is Integer.MIN_VALUE.
1342 So just return -1 rather than Integer.MIN_VALUE.
1343
1344
1345 <h3><a name="DLS_DEAD_LOCAL_INCREMENT_IN_RETURN">DLS: Useless increment in retur n statement (DLS_DEAD_LOCAL_INCREMENT_IN_RETURN)</a></h3> 1384 <h3><a name="DLS_DEAD_LOCAL_INCREMENT_IN_RETURN">DLS: Useless increment in retur n statement (DLS_DEAD_LOCAL_INCREMENT_IN_RETURN)</a></h3>
1346 1385
1347 1386
1348 <p>This statement has a return such as <code>return x++;</code>. 1387 <p>This statement has a return such as <code>return x++;</code>.
1349 A postfix increment/decrement does not impact the value of the expression, 1388 A postfix increment/decrement does not impact the value of the expression,
1350 so this increment/decrement has no effect. 1389 so this increment/decrement has no effect.
1351 Please verify that this statement does the right thing. 1390 Please verify that this statement does the right thing.
1352 </p> 1391 </p>
1353 1392
1354 1393
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after
1481 1520
1482 1521
1483 <h3><a name="DMI_VACUOUS_CALL_TO_EASYMOCK_METHOD">Dm: Useless/vacuous call to Ea syMock method (DMI_VACUOUS_CALL_TO_EASYMOCK_METHOD)</a></h3> 1522 <h3><a name="DMI_VACUOUS_CALL_TO_EASYMOCK_METHOD">Dm: Useless/vacuous call to Ea syMock method (DMI_VACUOUS_CALL_TO_EASYMOCK_METHOD)</a></h3>
1484 1523
1485 1524
1486 <p>This call doesn't pass any objects to the EasyMock method, so the call do esn't do anything. 1525 <p>This call doesn't pass any objects to the EasyMock method, so the call do esn't do anything.
1487 </p> 1526 </p>
1488 1527
1489 1528
1490 1529
1530 <h3><a name="DM_INVALID_MIN_MAX">Dm: Incorrect combination of Math.max and Math. min (DM_INVALID_MIN_MAX)</a></h3>
1531
1532
1533 <p>This code tries to limit the value bounds using the construct like Math.min (0, Math.max(100, value)). However the order of
1534 the constants is incorrect: it should be Math.min(100, Math.max(0, value)). As the result this code always produces the same result
1535 (or NaN if the value is NaN).</p>
1536
1537
1491 <h3><a name="EC_ARRAY_AND_NONARRAY">EC: Utilisation de equals() pour comparer un tableau et un objet (EC_ARRAY_AND_NONARRAY)</a></h3> 1538 <h3><a name="EC_ARRAY_AND_NONARRAY">EC: Utilisation de equals() pour comparer un tableau et un objet (EC_ARRAY_AND_NONARRAY)</a></h3>
1492 1539
1493 1540
1494 <p>Cette méthode appelle <code>equals(Object o)</code> pour comparer un tableau et une référence qui ne semble pas être un tableau. Si les choses comparées sont de type différents, il est garanti qu'elles seront non égales et la comparaison est probablement une erreur. Même si les deux sont des tableaux, la méthode <co de>equals()</code> détermine seulement si les deux tableaux sont le même objet. Pour comparer le contenu de deux tableaux, utilisez <code>java.util.Arrays.equal s(Object[], Object[])</code>.</p> 1541 <p>Cette méthode appelle <code>equals(Object o)</code> pour comparer un tableau et une référence qui ne semble pas être un tableau. Si les choses comparées sont de type différents, il est garanti qu'elles seront non égales et la comparaison est probablement une erreur. Même si les deux sont des tableaux, la méthode <co de>equals()</code> détermine seulement si les deux tableaux sont le même objet. Pour comparer le contenu de deux tableaux, utilisez <code>java.util.Arrays.equal s(Object[], Object[])</code>.</p>
1495 1542
1496 1543
1497 <h3><a name="EC_BAD_ARRAY_COMPARE">EC: Appel à equals() sur un tableau équivalen t à == (EC_BAD_ARRAY_COMPARE)</a></h3> 1544 <h3><a name="EC_BAD_ARRAY_COMPARE">EC: Appel à equals() sur un tableau équivalen t à == (EC_BAD_ARRAY_COMPARE)</a></h3>
1498 1545
1499 1546
1500 <p>Cette méthode invoque la méthode <code>equals(Object o)</code> d'un tableau. Comme les tableaux ne surchargent pas la méthode <code>equals()</code> de <code> Object</code>, cet appel revient à comparer les adresses. Pour comparer les cont enus de tableaux, utilisez <code>java.util.Arrays.equals(Object[], Object[])</co de>.</p> 1547 <p>Cette méthode invoque la méthode <code>equals(Object o)</code> d'un tableau. Comme les tableaux ne surchargent pas la méthode <code>equals()</code> de <code> Object</code>, cet appel revient à comparer les adresses. Pour comparer les cont enus de tableaux, utilisez <code>java.util.Arrays.equals(Object[], Object[])</co de>.</p>
(...skipping 263 matching lines...) Expand 10 before | Expand all | Expand 10 after
1764 1811
1765 1812
1766 <h3><a name="ICAST_INT_2_LONG_AS_INSTANT">ICAST: int value converted to long and used as absolute time (ICAST_INT_2_LONG_AS_INSTANT)</a></h3> 1813 <h3><a name="ICAST_INT_2_LONG_AS_INSTANT">ICAST: int value converted to long and used as absolute time (ICAST_INT_2_LONG_AS_INSTANT)</a></h3>
1767 1814
1768 1815
1769 <p> 1816 <p>
1770 This code converts a 32-bit int value to a 64-bit long value, and then 1817 This code converts a 32-bit int value to a 64-bit long value, and then
1771 passes that value for a method parameter that requires an absolute time value. 1818 passes that value for a method parameter that requires an absolute time value.
1772 An absolute time value is the number 1819 An absolute time value is the number
1773 of milliseconds since the standard base time known as "the epoch", namely Januar y 1, 1970, 00:00:00 GMT. 1820 of milliseconds since the standard base time known as "the epoch", namely Januar y 1, 1970, 00:00:00 GMT.
1774 For example, the following method, intended to convert seconds since the epoc in to a Date, is badly 1821 For example, the following method, intended to convert seconds since the epoch i nto a Date, is badly
1775 broken:</p> 1822 broken:</p>
1776 <pre> 1823 <pre>
1777 Date getDate(int seconds) { return new Date(seconds * 1000); } 1824 Date getDate(int seconds) { return new Date(seconds * 1000); }
1778 </pre> 1825 </pre>
1779 <p>The multiplication is done using 32-bit arithmetic, and then converted to a 6 4-bit value. 1826 <p>The multiplication is done using 32-bit arithmetic, and then converted to a 6 4-bit value.
1780 When a 32-bit value is converted to 64-bits and used to express an absolute time 1827 When a 32-bit value is converted to 64-bits and used to express an absolute time
1781 value, only dates in December 1969 and January 1970 can be represented.</p> 1828 value, only dates in December 1969 and January 1970 can be represented.</p>
1782 1829
1783 <p>Correct implementations for the above method are:</p> 1830 <p>Correct implementations for the above method are:</p>
1784 1831
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
1874 1921
1875 <h3><a name="INT_BAD_COMPARISON_WITH_INT_VALUE">INT: Bad comparison of int value with long constant (INT_BAD_COMPARISON_WITH_INT_VALUE)</a></h3> 1922 <h3><a name="INT_BAD_COMPARISON_WITH_INT_VALUE">INT: Bad comparison of int value with long constant (INT_BAD_COMPARISON_WITH_INT_VALUE)</a></h3>
1876 1923
1877 1924
1878 <p> This code compares an int value with a long constant that is outside 1925 <p> This code compares an int value with a long constant that is outside
1879 the range of values that can be represented as an int value. 1926 the range of values that can be represented as an int value.
1880 This comparison is vacuous and possibily to be incorrect. 1927 This comparison is vacuous and possibily to be incorrect.
1881 </p> 1928 </p>
1882 1929
1883 1930
1884 <h3><a name="INT_BAD_COMPARISON_WITH_NONNEGATIVE_VALUE">INT: Bad comparison of n onnegative value with negative constant (INT_BAD_COMPARISON_WITH_NONNEGATIVE_VAL UE)</a></h3> 1931 <h3><a name="INT_BAD_COMPARISON_WITH_NONNEGATIVE_VALUE">INT: Bad comparison of n onnegative value with negative constant or zero (INT_BAD_COMPARISON_WITH_NONNEGA TIVE_VALUE)</a></h3>
1885 1932
1886 1933
1887 <p> This code compares a value that is guaranteed to be non-negative with a nega tive constant. 1934 <p> This code compares a value that is guaranteed to be non-negative with a nega tive constant or zero.
1888 </p> 1935 </p>
1889 1936
1890 1937
1891 <h3><a name="INT_BAD_COMPARISON_WITH_SIGNED_BYTE">INT: Bad comparison of signed byte (INT_BAD_COMPARISON_WITH_SIGNED_BYTE)</a></h3> 1938 <h3><a name="INT_BAD_COMPARISON_WITH_SIGNED_BYTE">INT: Bad comparison of signed byte (INT_BAD_COMPARISON_WITH_SIGNED_BYTE)</a></h3>
1892 1939
1893 1940
1894 <p> Signed bytes can only have a value in the range -128 to 127. Comparing 1941 <p> Signed bytes can only have a value in the range -128 to 127. Comparing
1895 a signed byte with a value outside that range is vacuous and likely to be incorr ect. 1942 a signed byte with a value outside that range is vacuous and likely to be incorr ect.
1896 To convert a signed byte <code>b</code> to an unsigned value in the range 0..255 , 1943 To convert a signed byte <code>b</code> to an unsigned value in the range 0..255 ,
1897 use <code>0xff &amp; b</code> 1944 use <code>0xff &amp; b</code>
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
1972 2019
1973 <p> 2020 <p>
1974 There is a statement or branch on an exception path 2021 There is a statement or branch on an exception path
1975 that if executed guarantees that 2022 that if executed guarantees that
1976 a value is null at this point, and that 2023 a value is null at this point, and that
1977 value that is guaranteed to be dereferenced 2024 value that is guaranteed to be dereferenced
1978 (except on forward paths involving runtime exceptions). 2025 (except on forward paths involving runtime exceptions).
1979 </p> 2026 </p>
1980 2027
1981 2028
1982 <h3><a name="NP_NONNULL_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR">NP: Nonnull field is not initialized (NP_NONNULL_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR)</a></h3> 2029 <h3><a name="NP_NONNULL_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR">NP: Non-null field is not initialized (NP_NONNULL_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR)</a></h3>
1983 2030
1984 2031
1985 <p> The field is marked as nonnull, but isn't written to by the construct or. 2032 <p> The field is marked as non-null, but isn't written to by the construc tor.
1986 The field might be initialized elsewhere during constructor, or might always 2033 The field might be initialized elsewhere during constructor, or might always
1987 be initialized before use. 2034 be initialized before use.
1988 </p> 2035 </p>
1989 2036
1990 2037
1991 <h3><a name="NP_NONNULL_PARAM_VIOLATION">NP: Appel de méthode transmettant null à un paramètre déclaré @NonNull (NP_NONNULL_PARAM_VIOLATION)</a></h3> 2038 <h3><a name="NP_NONNULL_PARAM_VIOLATION">NP: Appel de méthode transmettant null à un paramètre déclaré @NonNull (NP_NONNULL_PARAM_VIOLATION)</a></h3>
1992 2039
1993 2040
1994 <p>Cette méthode passe une valeur à <code>null</code> en paramètre d'une méthode qui a déclaré ce paramètre comme <code>@NonNull</code>.</p> 2041 <p>Cette méthode passe une valeur à <code>null</code> en paramètre d'une méthode qui a déclaré ce paramètre comme <code>@NonNull</code>.</p>
1995 <p>Notez que la méthode avec l'annotation <code>@NonNull</code> peut être dans u ne sous-classe de l'objet appelé.</p> 2042 <p>Notez que la méthode avec l'annotation <code>@NonNull</code> peut être dans u ne sous-classe de l'objet appelé.</p>
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
2039 <h3><a name="NP_NULL_PARAM_DEREF_NONVIRTUAL">NP: Appel à une méthode non virtuel le passant null à un paramètre déréférencé de façon inconditionnelle (NP_NULL_PA RAM_DEREF_NONVIRTUAL)</a></h3> 2086 <h3><a name="NP_NULL_PARAM_DEREF_NONVIRTUAL">NP: Appel à une méthode non virtuel le passant null à un paramètre déréférencé de façon inconditionnelle (NP_NULL_PA RAM_DEREF_NONVIRTUAL)</a></h3>
2040 2087
2041 2088
2042 <p>Une valeur pouvant être à <code>null</code> est passée à une méthode qui déré férence ce paramètre de façon inconditionnelle. Cela peut se terminer en <code>N ullPointerException</code>.</p> 2089 <p>Une valeur pouvant être à <code>null</code> est passée à une méthode qui déré férence ce paramètre de façon inconditionnelle. Cela peut se terminer en <code>N ullPointerException</code>.</p>
2043 2090
2044 2091
2045 <h3><a name="NP_OPTIONAL_RETURN_NULL">NP: Method with Optional return type retur ns explicit null (NP_OPTIONAL_RETURN_NULL)</a></h3> 2092 <h3><a name="NP_OPTIONAL_RETURN_NULL">NP: Method with Optional return type retur ns explicit null (NP_OPTIONAL_RETURN_NULL)</a></h3>
2046 2093
2047 2094
2048 <p> 2095 <p>
2049 The usage of Optional return type always mean that explicit null returns wer e not desired by design. 2096 The usage of Optional return type (java.util.Optional or com.google.common.b ase.Optiona)
2097 always mean that explicit null returns were not desired by design.
2050 Returning a null value in such case is a contract violation and will most li kely break clients code. 2098 Returning a null value in such case is a contract violation and will most li kely break clients code.
2051 </p> 2099 </p>
2052 2100
2053 2101
2054 <h3><a name="NP_STORE_INTO_NONNULL_FIELD">NP: Stocke une valeur null dans un cha mp annoté NonNull (NP_STORE_INTO_NONNULL_FIELD)</a></h3> 2102 <h3><a name="NP_STORE_INTO_NONNULL_FIELD">NP: Stocke une valeur null dans un cha mp annoté NonNull (NP_STORE_INTO_NONNULL_FIELD)</a></h3>
2055 2103
2056 2104
2057 <p>Une valeur qui pourrait être à <code>null</code> est stockée dans un champ qu i a été annoté comme <code>NonNull</code>.</p> 2105 <p>Une valeur qui pourrait être à <code>null</code> est stockée dans un champ qu i a été annoté comme <code>NonNull</code>.</p>
2058 2106
2059 2107
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
2120 types are <code>Foo</code>'s from different packages. 2168 types are <code>Foo</code>'s from different packages.
2121 </p> 2169 </p>
2122 2170
2123 2171
2124 <h3><a name="QBA_QUESTIONABLE_BOOLEAN_ASSIGNMENT">QBA: Méthode assignant une val eur boléenne fixe dans une expression booléenne (QBA_QUESTIONABLE_BOOLEAN_ASSIGN MENT)</a></h3> 2172 <h3><a name="QBA_QUESTIONABLE_BOOLEAN_ASSIGNMENT">QBA: Méthode assignant une val eur boléenne fixe dans une expression booléenne (QBA_QUESTIONABLE_BOOLEAN_ASSIGN MENT)</a></h3>
2125 2173
2126 2174
2127 <p>Cette méthode assigne une valeur booléenne fixe (<code>true</code> ou <code>f alse</code>) à une variable booléenne dans une expression <code>if</code> ou <co de>while</code>. Il est probable que le but était d'effectuer une comparaison bo oléenne utilisant <code>==</code> et non pas une affectation avec <code>=</code> .</p> 2175 <p>Cette méthode assigne une valeur booléenne fixe (<code>true</code> ou <code>f alse</code>) à une variable booléenne dans une expression <code>if</code> ou <co de>while</code>. Il est probable que le but était d'effectuer une comparaison bo oléenne utilisant <code>==</code> et non pas une affectation avec <code>=</code> .</p>
2128 2176
2129 2177
2178 <h3><a name="RANGE_ARRAY_INDEX">RANGE: Array index is out of bounds (RANGE_ARRAY _INDEX)</a></h3>
2179
2180
2181 <p> Array operation is performed, but array index is out of bounds, which wil l result in ArrayIndexOutOfBoundsException at runtime.</p>
2182
2183
2184 <h3><a name="RANGE_ARRAY_LENGTH">RANGE: Array length is out of bounds (RANGE_ARR AY_LENGTH)</a></h3>
2185
2186
2187 <p> Method is called with array parameter and length parameter, but the lengt h is out of bounds. This will result in IndexOutOfBoundsException at runtime. </ p>
2188
2189
2190 <h3><a name="RANGE_ARRAY_OFFSET">RANGE: Array offset is out of bounds (RANGE_ARR AY_OFFSET)</a></h3>
2191
2192
2193 <p> Method is called with array parameter and offset parameter, but the offse t is out of bounds. This will result in IndexOutOfBoundsException at runtime. </ p>
2194
2195
2196 <h3><a name="RANGE_STRING_INDEX">RANGE: String index is out of bounds (RANGE_STR ING_INDEX)</a></h3>
2197
2198
2199 <p> String method is called and specified string index is out of bounds. This will result in StringIndexOutOfBoundsException at runtime. </p>
2200
2201
2130 <h3><a name="RC_REF_COMPARISON">RC: Comparaison de références suspecte (RC_REF_C OMPARISON)</a></h3> 2202 <h3><a name="RC_REF_COMPARISON">RC: Comparaison de références suspecte (RC_REF_C OMPARISON)</a></h3>
2131 2203
2132 2204
2133 <p>Cette méthode compare deux références avec l'opérateur <code>==</code> ou <co de>!=</code>, alors que la façon correcte de comparer les instances de ce type e st généralement d'utiliser la méthode <code>equals()</code>. Des exemples de cla sses qui ne doivent généralement pas être comparées par référence sont <code>jav a.lang.Integer</code>, <code>java.lang.Float</code>, etc...</p> 2205 <p>Cette méthode compare deux références avec l'opérateur <code>==</code> ou <co de>!=</code>, alors que la façon correcte de comparer les instances de ce type e st généralement d'utiliser la méthode <code>equals()</code>. Des exemples de cla sses qui ne doivent généralement pas être comparées par référence sont <code>jav a.lang.Integer</code>, <code>java.lang.Float</code>, etc...</p>
2134 2206
2135 2207
2136 <h3><a name="RCN_REDUNDANT_NULLCHECK_WOULD_HAVE_BEEN_A_NPE">RCN: Test de nullité d'une valeur préalablement déréférencée (RCN_REDUNDANT_NULLCHECK_WOULD_HAVE_BEE N_A_NPE)</a></h3> 2208 <h3><a name="RCN_REDUNDANT_NULLCHECK_WOULD_HAVE_BEEN_A_NPE">RCN: Test de nullité d'une valeur préalablement déréférencée (RCN_REDUNDANT_NULLCHECK_WOULD_HAVE_BEE N_A_NPE)</a></h3>
2137 2209
2138 2210
2139 <p>Une valeur est testée ici pour savoir si elle est à <code>null</code> alors q ue cette valeur ne peut pas être à <code>null</code> puisqu'elle a été déréféren cée et qu'une <code>NullPointerException</code> se serait alors produite à ce mo ment. Ce code est en contradiction avec le déréférencement préalable au sujet de la capacité de cette valeur d'être à <code>null</code>. Soit le test est redond ant, soit le déréférencement préalable est erroné.</p> 2211 <p>Une valeur est testée ici pour savoir si elle est à <code>null</code> alors q ue cette valeur ne peut pas être à <code>null</code> puisqu'elle a été déréféren cée et qu'une <code>NullPointerException</code> se serait alors produite à ce mo ment. Ce code est en contradiction avec le déréférencement préalable au sujet de la capacité de cette valeur d'être à <code>null</code>. Soit le test est redond ant, soit le déréférencement préalable est erroné.</p>
(...skipping 636 matching lines...) Expand 10 before | Expand all | Expand 10 after
2776 2848
2777 <p>Un champ statique modifiable peut-être changé par accident ou par du code mal veillant d'un autre paquetage. Le champ devrait être package protected et/ou fin al pour éviter cette vulnérabilité.</p> 2849 <p>Un champ statique modifiable peut-être changé par accident ou par du code mal veillant d'un autre paquetage. Le champ devrait être package protected et/ou fin al pour éviter cette vulnérabilité.</p>
2778 2850
2779 2851
2780 <h3><a name="MS_MUTABLE_ARRAY">MS: Un champ est un tableau modifiable (MS_MUTABL E_ARRAY)</a></h3> 2852 <h3><a name="MS_MUTABLE_ARRAY">MS: Un champ est un tableau modifiable (MS_MUTABL E_ARRAY)</a></h3>
2781 2853
2782 2854
2783 <p>Le champ est une référence final static à un tableau et peut-être modifié par accident ou par du code malveillant d'un autre paquetage. Ce code peut libremen t modifier le contenu du tableau.</p> 2855 <p>Le champ est une référence final static à un tableau et peut-être modifié par accident ou par du code malveillant d'un autre paquetage. Ce code peut libremen t modifier le contenu du tableau.</p>
2784 2856
2785 2857
2858 <h3><a name="MS_MUTABLE_COLLECTION">MS: Field is a mutable collection (MS_MUTABL E_COLLECTION)</a></h3>
2859
2860
2861 <p>A mutable collection instance is assigned to a final static field,
2862 thus can be changed by malicious code or by accident from another package.
2863 Consider wrapping this field into Collections.unmodifiableSet/List/Map/etc.
2864 to avoid this vulnerability.</p>
2865
2866
2867 <h3><a name="MS_MUTABLE_COLLECTION_PKGPROTECT">MS: Field is a mutable collection which should be package protected (MS_MUTABLE_COLLECTION_PKGPROTECT)</a></h3>
2868
2869
2870 <p>A mutable collection instance is assigned to a final static field,
2871 thus can be changed by malicious code or by accident from another package.
2872 The field could be made package protected to avoid this vulnerability.
2873 Alternatively you may wrap this field into Collections.unmodifiableSet/List/M ap/etc.
2874 to avoid this vulnerability.</p>
2875
2876
2786 <h3><a name="MS_MUTABLE_HASHTABLE">MS: Un champ modifiable est une Hashtable (MS _MUTABLE_HASHTABLE)</a></h3> 2877 <h3><a name="MS_MUTABLE_HASHTABLE">MS: Un champ modifiable est une Hashtable (MS _MUTABLE_HASHTABLE)</a></h3>
2787 2878
2788 2879
2789 <p>Le champ est une référence final static à une <code>Hashtable</code> et peut- être modifié par accident ou par du code malveillant d'un autre paquetage. Ce co de peut librement modifier le contenu de la <code>Hashtable</code>.</p> 2880 <p>Le champ est une référence final static à une <code>Hashtable</code> et peut- être modifié par accident ou par du code malveillant d'un autre paquetage. Ce co de peut librement modifier le contenu de la <code>Hashtable</code>.</p>
2790 2881
2791 2882
2792 <h3><a name="MS_OOI_PKGPROTECT">MS: Le champ devrait être sorti de l'interface e t mis en package protected (MS_OOI_PKGPROTECT)</a></h3> 2883 <h3><a name="MS_OOI_PKGPROTECT">MS: Le champ devrait être sorti de l'interface e t mis en package protected (MS_OOI_PKGPROTECT)</a></h3>
2793 2884
2794 2885
2795 <p>Un champ final static défini dans une interface référence un objet modifiable tel qu'un tableau ou une table de hachage. Cet objet pourrait être modifié par accident ou par du code sournois d'un autre paquetage. Pour résoudre cela et évi ter cette vulnérabilité, le champ doit être intégré dans une classe et sa visibi lité modifiée en package protected.</p> 2886 <p>Un champ final static défini dans une interface référence un objet modifiable tel qu'un tableau ou une table de hachage. Cet objet pourrait être modifié par accident ou par du code sournois d'un autre paquetage. Pour résoudre cela et évi ter cette vulnérabilité, le champ doit être intégré dans une classe et sa visibi lité modifiée en package protected.</p>
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
2827 (such as a concurrent hash map). 2918 (such as a concurrent hash map).
2828 These calls will not be executed atomically. 2919 These calls will not be executed atomically.
2829 2920
2830 2921
2831 <h3><a name="DC_DOUBLECHECK">DC: Possible double vérification d'un champ (DC_DOU BLECHECK)</a></h3> 2922 <h3><a name="DC_DOUBLECHECK">DC: Possible double vérification d'un champ (DC_DOU BLECHECK)</a></h3>
2832 2923
2833 2924
2834 <p>Cette méthode contient peut-être une instance de verrou par double vérificati on. Cet idiome n'est pas correct vis-à-vis de la sémantique du modèle de mémoire Java. Pour plus d'informations, cf. la page <a href="http://www.cs.umd.edu/~pug h/java/memoryModel/DoubleCheckedLocking.html">http://www.cs.umd.edu/~pugh/java/m emoryModel/DoubleCheckedLocking.html</a>.</p> 2925 <p>Cette méthode contient peut-être une instance de verrou par double vérificati on. Cet idiome n'est pas correct vis-à-vis de la sémantique du modèle de mémoire Java. Pour plus d'informations, cf. la page <a href="http://www.cs.umd.edu/~pug h/java/memoryModel/DoubleCheckedLocking.html">http://www.cs.umd.edu/~pugh/java/m emoryModel/DoubleCheckedLocking.html</a>.</p>
2835 2926
2836 2927
2928 <h3><a name="DC_PARTIALLY_CONSTRUCTED">DC: Possible exposure of partially initia lized object (DC_PARTIALLY_CONSTRUCTED)</a></h3>
2929
2930
2931 <p>Looks like this method uses lazy field initialization with double-checked l ocking.
2932 While the field is correctly declared as volatile, it's possible that the inte rnal structure of
2933 the object is changed after the field assignment, thus another thread may see the partially initialized object.</p>
2934 <p>To fix this problem consider storing the object into the local variable fir st
2935 and save it to the volatile field only after it's fully constructed.
2936 </p>
2937
2938
2837 <h3><a name="DL_SYNCHRONIZATION_ON_BOOLEAN">DL: Synchronization on Boolean (DL_S YNCHRONIZATION_ON_BOOLEAN)</a></h3> 2939 <h3><a name="DL_SYNCHRONIZATION_ON_BOOLEAN">DL: Synchronization on Boolean (DL_S YNCHRONIZATION_ON_BOOLEAN)</a></h3>
2838 2940
2839 2941
2840 <p> The code synchronizes on a boxed primitive constant, such as an Boolean.</ p> 2942 <p> The code synchronizes on a boxed primitive constant, such as an Boolean.</ p>
2841 <pre> 2943 <pre>
2842 private static Boolean inited = Boolean.FALSE; 2944 private static Boolean inited = Boolean.FALSE;
2843 ... 2945 ...
2844 synchronized(inited) { 2946 synchronized(inited) {
2845 if (!inited) { 2947 if (!inited) {
2846 init(); 2948 init();
(...skipping 448 matching lines...) Expand 10 before | Expand all | Expand 10 after
3295 </p> 3397 </p>
3296 3398
3297 3399
3298 <h3><a name="BX_BOXING_IMMEDIATELY_UNBOXED_TO_PERFORM_COERCION">Bx: Primitive va lue is boxed then unboxed to perform primitive coercion (BX_BOXING_IMMEDIATELY_U NBOXED_TO_PERFORM_COERCION)</a></h3> 3400 <h3><a name="BX_BOXING_IMMEDIATELY_UNBOXED_TO_PERFORM_COERCION">Bx: Primitive va lue is boxed then unboxed to perform primitive coercion (BX_BOXING_IMMEDIATELY_U NBOXED_TO_PERFORM_COERCION)</a></h3>
3299 3401
3300 3402
3301 <p>A primitive boxed value constructed and then immediately converted into a d ifferent primitive type 3403 <p>A primitive boxed value constructed and then immediately converted into a d ifferent primitive type
3302 (e.g., <code>new Double(d).intValue()</code>). Just perform direct primitive coe rcion (e.g., <code>(int) d</code>).</p> 3404 (e.g., <code>new Double(d).intValue()</code>). Just perform direct primitive coe rcion (e.g., <code>(int) d</code>).</p>
3303 3405
3304 3406
3407 <h3><a name="BX_UNBOXED_AND_COERCED_FOR_TERNARY_OPERATOR">Bx: Primitive value is unboxed and coerced for ternary operator (BX_UNBOXED_AND_COERCED_FOR_TERNARY_OP ERATOR)</a></h3>
3408
3409
3410 <p>A wrapped primitive value is unboxed and converted to another primitive typ e as part of the
3411 evaluation of a conditional ternary operator (the <code> b ? e1 : e2</code> oper ator). The
3412 semantics of Java mandate that if <code>e1</code> and <code>e2</code> are wrappe d
3413 numeric values, the values are unboxed and converted/coerced to their common typ e (e.g,
3414 if <code>e1</code> is of type <code>Integer</code>
3415 and <code>e2</code> is of type <code>Float</code>, then <code>e1</code> is unbox ed,
3416 converted to a floating point value, and boxed. See JLS Section 15.25.
3417 </p>
3418
3419
3305 <h3><a name="BX_UNBOXING_IMMEDIATELY_REBOXED">Bx: Boxed value is unboxed and the n immediately reboxed (BX_UNBOXING_IMMEDIATELY_REBOXED)</a></h3> 3420 <h3><a name="BX_UNBOXING_IMMEDIATELY_REBOXED">Bx: Boxed value is unboxed and the n immediately reboxed (BX_UNBOXING_IMMEDIATELY_REBOXED)</a></h3>
3306 3421
3307 3422
3308 <p>A boxed value is unboxed and then immediately reboxed. 3423 <p>A boxed value is unboxed and then immediately reboxed.
3309 </p> 3424 </p>
3310 3425
3311 3426
3427 <h3><a name="DM_BOXED_PRIMITIVE_FOR_COMPARE">Bx: Boxing a primitive to compare ( DM_BOXED_PRIMITIVE_FOR_COMPARE)</a></h3>
3428
3429
3430 <p>A boxed primitive is created just to call compareTo method. It's more effic ient to use static compare method
3431 (for double and float since Java 1.4, for other primitive types since Java 1.7 ) which works on primitives directly.
3432 </p>
3433
3434
3312 <h3><a name="DM_BOXED_PRIMITIVE_FOR_PARSING">Bx: Boxing/unboxing to parse a prim itive (DM_BOXED_PRIMITIVE_FOR_PARSING)</a></h3> 3435 <h3><a name="DM_BOXED_PRIMITIVE_FOR_PARSING">Bx: Boxing/unboxing to parse a prim itive (DM_BOXED_PRIMITIVE_FOR_PARSING)</a></h3>
3313 3436
3314 3437
3315 <p>A boxed primitive is created from a String, just to extract the unboxed pri mitive value. 3438 <p>A boxed primitive is created from a String, just to extract the unboxed pri mitive value.
3316 It is more efficient to just call the static parseXXX method.</p> 3439 It is more efficient to just call the static parseXXX method.</p>
3317 3440
3318 3441
3319 <h3><a name="DM_BOXED_PRIMITIVE_TOSTRING">Bx: Méthode allouant une primitive box ed pour appeler toString (DM_BOXED_PRIMITIVE_TOSTRING)</a></h3> 3442 <h3><a name="DM_BOXED_PRIMITIVE_TOSTRING">Bx: Méthode allouant une primitive box ed pour appeler toString (DM_BOXED_PRIMITIVE_TOSTRING)</a></h3>
3320 3443
3321 3444
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
3435 <p> 3558 <p>
3436 A large String constant is duplicated across multiple class files. 3559 A large String constant is duplicated across multiple class files.
3437 This is likely because a final field is initialized to a String constant, an d the Java language 3560 This is likely because a final field is initialized to a String constant, an d the Java language
3438 mandates that all references to a final field from other classes be inlined into 3561 mandates that all references to a final field from other classes be inlined into
3439 that classfile. See <a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id= 6447475">JDK bug 6447475</a> 3562 that classfile. See <a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id= 6447475">JDK bug 6447475</a>
3440 for a description of an occurrence of this bug in the JDK and how resolving it reduced 3563 for a description of an occurrence of this bug in the JDK and how resolving it reduced
3441 the size of the JDK by 1 megabyte. 3564 the size of the JDK by 1 megabyte.
3442 </p> 3565 </p>
3443 3566
3444 3567
3445 <h3><a name="IIO_INEFFICIENT_INDEX_OF">IIO: Inefficient use of String.indexOf(St ring) (IIO_INEFFICIENT_INDEX_OF)</a></h3>
3446
3447
3448 <p> This code passes a constant string of length 1 to String.indexOf().
3449 It is more efficient to use the integer implementations of String.indexOf().
3450 f. e. call <code>myString.indexOf('.')</code> instead of <code>myString.indexOf( ".")</code></p>
3451
3452
3453 <h3><a name="IIO_INEFFICIENT_LAST_INDEX_OF">IIO: Inefficient use of String.lastI ndexOf(String) (IIO_INEFFICIENT_LAST_INDEX_OF)</a></h3>
3454
3455
3456 <p> This code passes a constant string of length 1 to String.lastIndexOf().
3457 It is more efficient to use the integer implementations of String.lastIndexOf().
3458 f. e. call <code>myString.lastIndexOf('.')</code> instead of <code>myString.last IndexOf(".")</code></p>
3459
3460
3461 <h3><a name="ITA_INEFFICIENT_TO_ARRAY">ITA: La méthode utilise toArray() avec un tableau vide en paramètre (ITA_INEFFICIENT_TO_ARRAY)</a></h3>
3462
3463
3464 <p>Cette méthode utilise la méthode <code>toArray()</code> d'une classe dérivant de <code>Collection</code>, en lui passant en paramètre un tableau vide. Il est plus efficace d'utiliser <code>myCollection.toArray(new Foo[myCollection.size() ])</code>. Si le tableau transmis est assez grand pour stocker tous les éléments de la collection, alors il est alimenté et renvoyé directement. Ceci évite la n écessité de créer un nouveau tableau (par réflexion) pour renvoyer le résultat.< /p>
3465
3466
3467 <h3><a name="SBSC_USE_STRINGBUFFER_CONCATENATION">SBSC: La méthode concatène des chaînes au moyen de + en boucle (SBSC_USE_STRINGBUFFER_CONCATENATION)</a></h3> 3568 <h3><a name="SBSC_USE_STRINGBUFFER_CONCATENATION">SBSC: La méthode concatène des chaînes au moyen de + en boucle (SBSC_USE_STRINGBUFFER_CONCATENATION)</a></h3>
3468 3569
3469 3570
3470 <p>Cette méthode semble construire une <ocde>String</code> en utilisant une conc aténation en boucle. A chaque itération, l'objet <code>String</code> est convert i en <code>StringBuffer</code>/<code>StringBuilder</code>, complété, puis de nou veau converti en <code>String</code>. Ceci a un coût exponentiel en fonction du nombre d'itérations, puisque la chaîne est recopiée à chaque itération.</p> 3571 <p>Cette méthode semble construire une <ocde>String</code> en utilisant une conc aténation en boucle. A chaque itération, l'objet <code>String</code> est convert i en <code>StringBuffer</code>/<code>StringBuilder</code>, complété, puis de nou veau converti en <code>String</code>. Ceci a un coût exponentiel en fonction du nombre d'itérations, puisque la chaîne est recopiée à chaque itération.</p>
3471 <p>De meilleurs performances peuvent être obtenues en utilisant explicitement <c ode>StringBuffer</code> (ou <code>StringBuilder</code> en Java 5).</p> 3572 <p>De meilleurs performances peuvent être obtenues en utilisant explicitement <c ode>StringBuffer</code> (ou <code>StringBuilder</code> en Java 5).</p>
3472 <p>Par exemple :</p> 3573 <p>Par exemple :</p>
3473 <pre> 3574 <pre>
3474 // C'est mal ! 3575 // C'est mal !
3475 String s = ""; 3576 String s = "";
3476 for (int i = 0; i &lt; field.length; ++i) { 3577 for (int i = 0; i &lt; field.length; ++i) {
(...skipping 365 matching lines...) Expand 10 before | Expand all | Expand 10 after
3842 3943
3843 3944
3844 <p>Cette opération teste l'égalité de deux valeurs en virgule flottante. Les cal culs en virgule flottante pouvant introduire des arrondis, les valeurs flottante s ou doubles peuvent être imprécises. Pour les valeurs qui doivent être précises , telles que les valeurs monétaires, pensez à utiliser un type à précision fixe tel qu'un <code>BigDecimal</code>. Pour les valeurs qui n'ont pas besoin d'être précises, pensez à tester l'égalité sur une portée quelconque, par exemple : <co de>if ( Math.abs(x - y) &lt; .0000001 )</code>. Cf section 4.2.4 des spécificati ons du langage Java.</p> 3945 <p>Cette opération teste l'égalité de deux valeurs en virgule flottante. Les cal culs en virgule flottante pouvant introduire des arrondis, les valeurs flottante s ou doubles peuvent être imprécises. Pour les valeurs qui doivent être précises , telles que les valeurs monétaires, pensez à utiliser un type à précision fixe tel qu'un <code>BigDecimal</code>. Pour les valeurs qui n'ont pas besoin d'être précises, pensez à tester l'égalité sur une portée quelconque, par exemple : <co de>if ( Math.abs(x - y) &lt; .0000001 )</code>. Cf section 4.2.4 des spécificati ons du langage Java.</p>
3845 3946
3846 3947
3847 <h3><a name="VA_FORMAT_STRING_BAD_CONVERSION_TO_BOOLEAN">FS: Non-Boolean argumen t formatted using %b format specifier (VA_FORMAT_STRING_BAD_CONVERSION_TO_BOOLEA N)</a></h3> 3948 <h3><a name="VA_FORMAT_STRING_BAD_CONVERSION_TO_BOOLEAN">FS: Non-Boolean argumen t formatted using %b format specifier (VA_FORMAT_STRING_BAD_CONVERSION_TO_BOOLEA N)</a></h3>
3848 3949
3849 3950
3850 <p> 3951 <p>
3851 An argument not of type Boolean is being formatted with a %b format specifier. T his won't throw an 3952 An argument not of type Boolean is being formatted with a %b format specifier. T his won't throw an
3852 exception; instead, it will print true for any nonnull value, and false for null . 3953 exception; instead, it will print true for any non-null value, and false for nul l.
3853 This feature of format strings is strange, and may not be what you intended. 3954 This feature of format strings is strange, and may not be what you intended.
3854 </p> 3955 </p>
3855 3956
3856 3957
3857 <h3><a name="IA_AMBIGUOUS_INVOCATION_OF_INHERITED_OR_OUTER_METHOD">IA: Appel amb igu d'une méthode hérité ou externe (IA_AMBIGUOUS_INVOCATION_OF_INHERITED_OR_OUT ER_METHOD)</a></h3> 3958 <h3><a name="IA_AMBIGUOUS_INVOCATION_OF_INHERITED_OR_OUTER_METHOD">IA: Appel amb igu d'une méthode hérité ou externe (IA_AMBIGUOUS_INVOCATION_OF_INHERITED_OR_OUT ER_METHOD)</a></h3>
3858 3959
3859 3960
3860 <p>Une classe interne invoque une méthode qui peut être résolue comme une méthod e héritée ou comme une méthode définie dans une classe externe. La sémantique de Java fait qu'elle sera résolue en invoquant la méthode héritée, mais ce n'est p eut être pas votre intention. Si vous souhaitez réellement invoquer la méthode h éritée, faite le en utilisant <code>super</code> (Ex : appelé <code>super.foo(17 )</code>) ce qui clarifiera votre code pour les autres lecteurs et pour FindBugs .</p> 3961 <p>Une classe interne invoque une méthode qui peut être résolue comme une méthod e héritée ou comme une méthode définie dans une classe externe. La sémantique de Java fait qu'elle sera résolue en invoquant la méthode héritée, mais ce n'est p eut être pas votre intention. Si vous souhaitez réellement invoquer la méthode h éritée, faite le en utilisant <code>super</code> (Ex : appelé <code>super.foo(17 )</code>) ce qui clarifiera votre code pour les autres lecteurs et pour FindBugs .</p>
3861 3962
3862 3963
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
3988 <p> There is a branch of statement that, <em>if executed,</em> guarantees that 4089 <p> There is a branch of statement that, <em>if executed,</em> guarantees that
3989 a null value will be dereferenced, which 4090 a null value will be dereferenced, which
3990 would generate a <code>NullPointerException</code> when the code is executed. 4091 would generate a <code>NullPointerException</code> when the code is executed.
3991 Of course, the problem might be that the branch or statement is infeasible and t hat 4092 Of course, the problem might be that the branch or statement is infeasible and t hat
3992 the null pointer exception can't ever be executed; deciding that is beyond the a bility of FindBugs. 4093 the null pointer exception can't ever be executed; deciding that is beyond the a bility of FindBugs.
3993 Due to the fact that this value had been previously tested for nullness, 4094 Due to the fact that this value had been previously tested for nullness,
3994 this is a definite possibility. 4095 this is a definite possibility.
3995 </p> 4096 </p>
3996 4097
3997 4098
3998 <h3><a name="NP_PARAMETER_MUST_BE_NONNULL_BUT_MARKED_AS_NULLABLE">NP: Parameter must be nonnull but is marked as nullable (NP_PARAMETER_MUST_BE_NONNULL_BUT_MARK ED_AS_NULLABLE)</a></h3> 4099 <h3><a name="NP_PARAMETER_MUST_BE_NONNULL_BUT_MARKED_AS_NULLABLE">NP: Parameter must be non-null but is marked as nullable (NP_PARAMETER_MUST_BE_NONNULL_BUT_MAR KED_AS_NULLABLE)</a></h3>
3999 4100
4000 4101
4001 <p> This parameter is always used in a way that requires it to be nonnull, 4102 <p> This parameter is always used in a way that requires it to be non-null,
4002 but the parameter is explicitly annotated as being Nullable. Either the use 4103 but the parameter is explicitly annotated as being Nullable. Either the use
4003 of the parameter or the annotation is wrong. 4104 of the parameter or the annotation is wrong.
4004 </p> 4105 </p>
4005 4106
4006 4107
4007 <h3><a name="NP_UNWRITTEN_PUBLIC_OR_PROTECTED_FIELD">NP: Read of unwritten publi c or protected field (NP_UNWRITTEN_PUBLIC_OR_PROTECTED_FIELD)</a></h3> 4108 <h3><a name="NP_UNWRITTEN_PUBLIC_OR_PROTECTED_FIELD">NP: Read of unwritten publi c or protected field (NP_UNWRITTEN_PUBLIC_OR_PROTECTED_FIELD)</a></h3>
4008 4109
4009 4110
4010 <p> The program is dereferencing a public or protected 4111 <p> The program is dereferencing a public or protected
4011 field that does not seem to ever have a non-null value written to it. 4112 field that does not seem to ever have a non-null value written to it.
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
4127 </p> 4228 </p>
4128 <p>We are guessing that ignoring the return value might be a bad idea just from 4229 <p>We are guessing that ignoring the return value might be a bad idea just from
4129 a simple analysis of the body of the method. You can use a @CheckReturnValue ann otation 4230 a simple analysis of the body of the method. You can use a @CheckReturnValue ann otation
4130 to instruct FindBugs as to whether ignoring the return value of this method 4231 to instruct FindBugs as to whether ignoring the return value of this method
4131 is important or acceptable. 4232 is important or acceptable.
4132 </p> 4233 </p>
4133 <p>Please investigate this closely to decide whether it is OK to ignore the retu rn value. 4234 <p>Please investigate this closely to decide whether it is OK to ignore the retu rn value.
4134 </p> 4235 </p>
4135 4236
4136 4237
4238 <h3><a name="RV_RETURN_VALUE_IGNORED_NO_SIDE_EFFECT">RV: Return value of method without side effect is ignored (RV_RETURN_VALUE_IGNORED_NO_SIDE_EFFECT)</a></h3>
4239
4240
4241 <p>This code calls a method and ignores the return value. However our analysis s hows that
4242 the method (including its implementations in subclasses if any) does not produce any effect
4243 other than return value. Thus this call can be removed.
4244 </p>
4245 <p>We are trying to reduce the false positives as much as possible, but in some cases this warning might be wrong.
4246 Common false-positive cases include:</p>
4247 <p>- The method is designed to be overridden and produce a side effect in other projects which are out of the scope of the analysis.</p>
4248 <p>- The method is called to trigger the class loading which may have a side eff ect.</p>
4249 <p>- The method is called just to get some exception.</p>
4250 <p>If you feel that our assumption is incorrect, you can use a @CheckReturnValue annotation
4251 to instruct FindBugs that ignoring the return value of this method is acceptable .
4252 </p>
4253
4254
4137 <h3><a name="SA_FIELD_DOUBLE_ASSIGNMENT">SA: Double assignment of field (SA_FIEL D_DOUBLE_ASSIGNMENT)</a></h3> 4255 <h3><a name="SA_FIELD_DOUBLE_ASSIGNMENT">SA: Double assignment of field (SA_FIEL D_DOUBLE_ASSIGNMENT)</a></h3>
4138 4256
4139 4257
4140 <p> This method contains a double assignment of a field; e.g. 4258 <p> This method contains a double assignment of a field; e.g.
4141 </p> 4259 </p>
4142 <pre> 4260 <pre>
4143 int x,y; 4261 int x,y;
4144 public void foo() { 4262 public void foo() {
4145 x = x = 17; 4263 x = x = 17;
4146 } 4264 }
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
4180 4298
4181 <p>Cette méthode contient un <code>switch</code> dont l'un des cas déborde sur l e suivant. Normalement, vous devez terminer chaque cas avec une instruction <cod e>break</code> ou <code>return</code>.</p> 4299 <p>Cette méthode contient un <code>switch</code> dont l'un des cas déborde sur l e suivant. Normalement, vous devez terminer chaque cas avec une instruction <cod e>break</code> ou <code>return</code>.</p>
4182 4300
4183 4301
4184 <h3><a name="SF_SWITCH_NO_DEFAULT">SF: Switch statement found where default case is missing (SF_SWITCH_NO_DEFAULT)</a></h3> 4302 <h3><a name="SF_SWITCH_NO_DEFAULT">SF: Switch statement found where default case is missing (SF_SWITCH_NO_DEFAULT)</a></h3>
4185 4303
4186 4304
4187 <p> This method contains a switch statement where default case is missing. 4305 <p> This method contains a switch statement where default case is missing.
4188 Usually you need to provide a default case.</p> 4306 Usually you need to provide a default case.</p>
4189 <p>Because the analysis only looks at the generated bytecode, this warning can be incorrect triggered if 4307 <p>Because the analysis only looks at the generated bytecode, this warning can be incorrect triggered if
4190 the default case is at the end of the switch statement and doesn't end with a br eak statement. 4308 the default case is at the end of the switch statement and the switch statement doesn't contain break statements for other
4309 cases.
4191 4310
4192 4311
4193 <h3><a name="ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD">ST: Ecriture d'un champ st atique depuis la méthode d'une instance (ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD )</a></h3> 4312 <h3><a name="ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD">ST: Ecriture d'un champ st atique depuis la méthode d'une instance (ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD )</a></h3>
4194 4313
4195 4314
4196 <p>La méthode de l'instance écrit la valeur d'un champ statique. Cela peut être difficile à gérer si plusieurs instances ont la possibilité d'écrire cette valeu r et cela ressemble surtout à une mauvaise pratique.</p> 4315 <p>La méthode de l'instance écrit la valeur d'un champ statique. Cela peut être difficile à gérer si plusieurs instances ont la possibilité d'écrire cette valeu r et cela ressemble surtout à une mauvaise pratique.</p>
4197 4316
4198 4317
4199 <h3><a name="SE_PRIVATE_READ_RESOLVE_NOT_INHERITED">Se: Private readResolve meth od not inherited by subclasses (SE_PRIVATE_READ_RESOLVE_NOT_INHERITED)</a></h3> 4318 <h3><a name="SE_PRIVATE_READ_RESOLVE_NOT_INHERITED">Se: Private readResolve meth od not inherited by subclasses (SE_PRIVATE_READ_RESOLVE_NOT_INHERITED)</a></h3>
4200 4319
(...skipping 26 matching lines...) Expand all
4227 <h3><a name="TQ_EXPLICIT_UNKNOWN_SOURCE_VALUE_REACHES_NEVER_SINK">TQ: Value requ ired to not have type qualifier, but marked as unknown (TQ_EXPLICIT_UNKNOWN_SOUR CE_VALUE_REACHES_NEVER_SINK)</a></h3> 4346 <h3><a name="TQ_EXPLICIT_UNKNOWN_SOURCE_VALUE_REACHES_NEVER_SINK">TQ: Value requ ired to not have type qualifier, but marked as unknown (TQ_EXPLICIT_UNKNOWN_SOUR CE_VALUE_REACHES_NEVER_SINK)</a></h3>
4228 4347
4229 4348
4230 <p> 4349 <p>
4231 A value is used in a way that requires it to be never be a value denoted b y a type qualifier, but 4350 A value is used in a way that requires it to be never be a value denoted b y a type qualifier, but
4232 there is an explicit annotation stating that it is not known where the value is prohibited from having that type qualifier. 4351 there is an explicit annotation stating that it is not known where the value is prohibited from having that type qualifier.
4233 Either the usage or the annotation is incorrect. 4352 Either the usage or the annotation is incorrect.
4234 </p> 4353 </p>
4235 4354
4236 4355
4356 <h3><a name="UC_USELESS_CONDITION">UC: Condition has no effect (UC_USELESS_CONDI TION)</a></h3>
4357
4358
4359 <p>This condition always produces the same result as the value of the involved v ariable was narrowed before.
4360 Probably something else was meant or condition can be removed.</p>
4361
4362
4363 <h3><a name="UC_USELESS_CONDITION_TYPE">UC: Condition has no effect due to the v ariable type (UC_USELESS_CONDITION_TYPE)</a></h3>
4364
4365
4366 <p>This condition always produces the same result due to the type range of the i nvolved variable.
4367 Probably something else was meant or condition can be removed.</p>
4368
4369
4370 <h3><a name="UC_USELESS_OBJECT">UC: Useless object created (UC_USELESS_OBJECT)</ a></h3>
4371
4372
4373 <p>Our analysis shows that this object is useless.
4374 It's created and modified, but its value never go outside of the method or produ ce any side-effect.
4375 Either there is a mistake and object was intended to be used or it can be remove d.</p>
4376 <p>This analysis rarely produces false-positives. Common false-positive cases in clude:</p>
4377 <p>- This object used to implicitly throw some obscure exception.</p>
4378 <p>- This object used as a stub to generalize the code.</p>
4379 <p>- This object used to hold strong references to weak/soft-referenced objects. </p>
4380
4381
4382 <h3><a name="UC_USELESS_OBJECT_STACK">UC: Useless object created on stack (UC_US ELESS_OBJECT_STACK)</a></h3>
4383
4384
4385 <p>This object is created just to perform some modifications which don't have an y side-effect.
4386 Probably something else was meant or the object can be removed.</p>
4387
4388
4389 <h3><a name="UC_USELESS_VOID_METHOD">UC: Useless non-empty void method (UC_USELE SS_VOID_METHOD)</a></h3>
4390
4391
4392 <p>Our analysis shows that this non-empty void method does not actually perform any useful work.
4393 Please check it: probably there's a mistake in its code or its body can be fully removed.
4394 </p>
4395 <p>We are trying to reduce the false positives as much as possible, but in some cases this warning might be wrong.
4396 Common false-positive cases include:</p>
4397 <p>- The method is intended to trigger loading of some class which may have a si de effect.</p>
4398 <p>- The method is intended to implicitly throw some obscure exception.</p>
4399
4400
4237 <h3><a name="UCF_USELESS_CONTROL_FLOW">UCF: Instruction de contrôle du flux inut ile (UCF_USELESS_CONTROL_FLOW)</a></h3> 4401 <h3><a name="UCF_USELESS_CONTROL_FLOW">UCF: Instruction de contrôle du flux inut ile (UCF_USELESS_CONTROL_FLOW)</a></h3>
4238 4402
4239 4403
4240 <p>Cette méthode contient une instruction de contrôle du flux inutile. Ceci est souvent provoqué par inadvertance, en utilisant un paragraphe vide comme corps d 'une condition. Exemple :</p> 4404 <p>Cette méthode contient une instruction de contrôle du flux inutile. Ceci est souvent provoqué par inadvertance, en utilisant un paragraphe vide comme corps d 'une condition. Exemple :</p>
4241 <pre> 4405 <pre>
4242 if (argv.length == 1); 4406 if (argv.length == 1);
4243 System.out.println("Hello, " + argv[0]); 4407 System.out.println("Hello, " + argv[0]);
4244 </pre> 4408 </pre>
4245 4409
4246 4410
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
4306 4470
4307 4471
4308 <hr> <p> 4472 <hr> <p>
4309 <script language="JavaScript" type="text/javascript"> 4473 <script language="JavaScript" type="text/javascript">
4310 <!---//hide script from old browsers 4474 <!---//hide script from old browsers
4311 document.write( "Last updated "+ document.lastModified + "." ); 4475 document.write( "Last updated "+ document.lastModified + "." );
4312 //end hiding contents ---> 4476 //end hiding contents --->
4313 </script> 4477 </script>
4314 <p> Send comments to <a class="sidebar" href="mailto:findbugs@cs.umd.edu">findbu gs@cs.umd.edu</a> 4478 <p> Send comments to <a class="sidebar" href="mailto:findbugs@cs.umd.edu">findbu gs@cs.umd.edu</a>
4315 <p> 4479 <p>
4316 <A href="http://sourceforge.net"><IMG src="http://sourceforge.net/sflogo.php?gro up_id=96405&amp;type=5" width="210" height="62" border="0" alt="SourceForge.net Logo" /></A> 4480 <a href="http://sourceforge.net/projects/findbugs/"><img src="http://sourceforge .net/sflogo.php?group_id=96405&amp;type=5" width="210" height="62" border="0" al t="FindBugs on SourceForge.net" /></a>
4317 </td></tr></table> 4481 </td></tr></table>
4318 </body></html> 4482 </body></html>
OLDNEW
« no previous file with comments | « doc/bugDescriptions.html ('k') | doc/bugDescriptions_ja.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698