| OLD | NEW | 
|     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  Loading... | 
|    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> </td></tr> |    36 <tr><td> </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> </td></tr> |    40 <tr><td> </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"> <a class="sidebar" href="http://sourceforge.net/tr
      acker/?group_id=96405">Open bugs</a></font></td></tr>  |    43 <tr><td><font size="-1"> <a class="sidebar" href="http://sourceforge.net/p/
      findbugs/bugs/">Open bugs</a></font></td></tr>  | 
|    43 <tr><td><font size="-1"> <a class="sidebar" href="reportingBugs.html">Repor
      ting bugs</a></font></td></tr>  |    44 <tr><td><font size="-1"> <a class="sidebar" href="reportingBugs.html">Repor
      ting bugs</a></font></td></tr>  | 
|    44 <tr><td><font size="-1"> <a class="sidebar" href="contributing.html">Contri
      buting</a></font></td></tr>  |    45 <tr><td><font size="-1"> <a class="sidebar" href="contributing.html">Contri
      buting</a></font></td></tr>  | 
|    45 <tr><td><font size="-1"> <a class="sidebar" href="team.html">Dev team</a></
      font></td></tr>  |    46 <tr><td><font size="-1"> <a class="sidebar" href="team.html">Dev team</a></
      font></td></tr>  | 
|    46 <tr><td><font size="-1"> <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"> <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"> <a class="sidebar" href="Changes.html">Change log<
      /a></font></td></tr>  |    48 <tr><td><font size="-1"> <a class="sidebar" href="Changes.html">Change log<
      /a></font></td></tr>  | 
|    48 <tr><td><font size="-1"> <a class="sidebar" href="http://sourceforge.net/pr
      ojects/findbugs">SF project page</a></font></td></tr>  |    49 <tr><td><font size="-1"> <a class="sidebar" href="http://sourceforge.net/pr
      ojects/findbugs">SF project page</a></font></td></tr>  | 
|    49 <tr><td><font size="-1"> <a class="sidebar" href="http://code.google.com/p/
      findbugs/source/browse/">Browse source</a></font></td></tr>  |    50 <tr><td><font size="-1"> <a class="sidebar" href="http://code.google.com/p/
      findbugs/source/browse/">Browse source</a></font></td></tr>  | 
|    50 <tr><td><font size="-1"> <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"> <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  Loading... | 
|    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  Loading... | 
|   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  Loading... | 
|   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  Loading... | 
|   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  Loading... | 
|   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  Loading... | 
|   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 < 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  Loading... | 
|   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  Loading... | 
|   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  Loading... | 
|   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  Loading... | 
|   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  Loading... | 
|  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 << 8 + y). Although this might be c
      orrect, probably it was meant  | 
 |  1373 to perform (x << 8) + y, but shift operation has | 
 |  1374 a lower precedence, so it's actually parsed as x << (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  Loading... | 
|  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  Loading... | 
|  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  Loading... | 
|  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 & b</code> |  1944 use <code>0xff & b</code> | 
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  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  Loading... | 
|  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  Loading... | 
|  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  Loading... | 
|  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  Loading... | 
|  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  Loading... | 
|  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  Loading... | 
|  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 < field.length; ++i) { |  3577 for (int i = 0; i < field.length; ++i) { | 
| (...skipping 365 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  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) < .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) < .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  Loading... | 
|  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  Loading... | 
|  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  Loading... | 
|  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  Loading... | 
|  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  Loading... | 
|  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&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&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> | 
| OLD | NEW |