(408,'SA_LOCAL_SELF_ASSIGNMENT','SA_LOCAL_SELF_ASSIGNMENT','findbugs','<p> This method contains a self assignment of a local variable; e.g.</p>\n<pre>\n  public void foo() {\n    int x = 3;\n    x = x;\n  }\n</pre>\n<p>\nSuch assignments are useless, and may indicate a logic error or typo.\n</p>',3,NULL,'Dodgy - Self assignment of local variable','READY','java','2015-04-06 11:18:24','2015-04-06 11:18:24',NULL,NULL,NULL,NULL,NULL,43,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'30min',NULL,NULL,NULL,0,'HTML'),(409,'EQ_SELF_USE_OBJECT','EQ_SELF_USE_OBJECT','findbugs','<p> This class defines a covariant version of the <code>equals()</code>\n  method, but inherits the normal <code>equals(Object)</code> method\n  defined in the base <code>java.lang.Object</code> class.&nbsp;\n  The class should probably define a <code>boolean equals(Object)</code> method.\n  </p>\n\n<p>\nThis rule is deprecated, use {rule:squid:S1201} instead.\n</p>',2,NULL,'Correctness - Covariant equals() method defined, Object.equals(Object) inherited','DEPRECATED','java','2015-04-06 11:18:24','2015-04-06 11:18:24',NULL,NULL,NULL,NULL,NULL,16,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'1h',NULL,NULL,NULL,0,'HTML'),(410,'RV_DONT_JUST_NULL_CHECK_READLINE','RV_DONT_JUST_NULL_CHECK_READLINE','findbugs','<p> The value returned by readLine is discarded after checking to see if the return\nvalue is non-null. In almost all situations, if the result is non-null, you will want\nto use that non-null value. Calling readLine again will give you a different line.</p>',2,NULL,'Dodgy - Method discards result of readLine after checking if it is nonnull','READY','java','2015-04-06 11:18:24','2015-04-06 11:18:24',NULL,NULL,NULL,NULL,NULL,43,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'1h',NULL,NULL,NULL,0,'HTML'),(411,'NS_DANGEROUS_NON_SHORT_CIRCUIT','NS_DANGEROUS_NON_SHORT_CIRCUIT','findbugs','<p> This code seems to be using non-short-circuit logic (e.g., &amp;\nor |)\nrather than short-circuit logic (&amp;&amp; or ||). In addition, \nit seem possible that, depending on the value of the left hand side, you might not\nwant to evaluate the right hand side (because it would have side effects, could cause an exception\nor could be expensive.</p>\n<p>\nNon-short-circuit logic causes both sides of the expression\nto be evaluated even when the result can be inferred from\nknowing the left-hand side. This can be less efficient and\ncan result in errors if the left-hand side guards cases\nwhen evaluating the right-hand side can generate an error.\n</p>\n\n<p>See <a href=\"http://java.sun.com/docs/books/jls/third_edition/html/expressions.html#15.22.2\">the Java\nLanguage Specification</a> for details\n\n</p>',3,NULL,'Dodgy - Potentially dangerous use of non-short-circuit logic','READY','java','2015-04-06 11:18:24','2015-04-06 11:18:24',NULL,NULL,NULL,NULL,NULL,43,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'1h',NULL,NULL,NULL,0,'HTML'),(412,'IJU_BAD_SUITE_METHOD','IJU_BAD_SUITE_METHOD','findbugs','<p> Class is a JUnit TestCase and defines a suite() method.\nHowever, the suite method needs to be declared as either\n<pre>public static junit.framework.Test suite()</pre>\nor \n<pre>public static junit.framework.TestSuite suite()</pre>\n</p>',3,NULL,'Correctness - TestCase declares a bad suite method','READY','java','2015-04-06 11:18:24','2015-04-06 11:18:24',NULL,NULL,NULL,NULL,NULL,16,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'30min',NULL,NULL,NULL,0,'HTML'),(413,'DMI_FUTILE_ATTEMPT_TO_CHANGE_MAXPOOL_SIZE_OF_SCHEDULED_THREAD_POOL_EXECUTOR','DMI_FUTILE_ATTEMPT_TO_CHANGE_MAXPOOL_SIZE_OF_SCHEDULED_THREAD_POOL_EXECUTOR','findbugs','<p>(<a href=\"http://java.sun.com/javase/6/docs/api/java/util/concurrent/ScheduledThreadPoolExecutor.html\">Javadoc</a>)\nWhile ScheduledThreadPoolExecutor inherits from ThreadPoolExecutor, a few of the inherited tuning methods are not useful for it. In particular, because it acts as a fixed-sized pool using corePoolSize threads and an unbounded queue, adjustments to maximumPoolSize have no useful effect.\n	</p>',1,NULL,'Correctness - Futile attempt to change max pool size of ScheduledThreadPoolExecutor','READY','java','2015-04-06 11:18:24','2015-04-06 11:18:24',NULL,NULL,NULL,NULL,NULL,43,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'1h',NULL,NULL,NULL,0,'HTML'),(414,'LI_LAZY_INIT_UPDATE_STATIC','LI_LAZY_INIT_UPDATE_STATIC','findbugs','<p> This method contains an unsynchronized lazy initialization of a static field.\nAfter the field is set, the object stored into that location is further accessed. \nThe setting of the field is visible to other threads as soon as it is set. If the\nfuther accesses in the method that set the field serve to initialize the object, then\nyou have a <em>very serious</em> multithreading bug, unless something else prevents\nany other thread from accessing the stored object until it is fully initialized.\n</p>',3,NULL,'Multithreaded correctness - Incorrect lazy initialization and update of static field','READY','java','2015-04-06 11:18:24','2015-04-06 11:18:24',NULL,NULL,NULL,NULL,NULL,46,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'1h',NULL,NULL,NULL,0,'HTML'),(415,'WL_USING_GETCLASS_RATHER_THAN_CLASS_LITERAL','WL_USING_GETCLASS_RATHER_THAN_CLASS_LITERAL','findbugs','<p>\n     This instance method synchronizes on <code>this.getClass()</code>. If this class is subclassed,\n     subclasses will synchronize on the class object for the subclass, which isn\'t likely what was intended.\n     For example, consider this code from java.awt.Label:\n     <pre>\n     private static final String base = \"label\";\n     private static int nameCounter = 0;\n     String constructComponentName() {\n        synchronized (getClass()) {\n            return base + nameCounter++;\n        }\n     }\n     </pre></p>\n     <p>Subclasses of <code>Label</code> won\'t synchronize on the same subclass, giving rise to a datarace.\n     Instead, this code should be synchronizing on <code>Label.class</code>\n      <pre>\n     private static final String base = \"label\";\n     private static int nameCounter = 0;\n     String constructComponentName() {\n        synchronized (Label.class) {\n            return base + nameCounter++;\n        }\n     }\n     </pre></p>\n      <p>Bug pattern contributed by Jason Mehrens</p>',3,NULL,'Multithreaded correctness - Sychronization on getClass rather than class literal','READY','java','2015-04-06 11:18:24','2015-04-06 11:18:24',NULL,NULL,NULL,NULL,NULL,46,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'1h',NULL,NULL,NULL,0,'HTML'),(416,'ODR_OPEN_DATABASE_RESOURCE_EXCEPTION_PATH','ODR_OPEN_DATABASE_RESOURCE_EXCEPTION_PATH','findbugs','<p> The method creates a database resource (such as a database connection\nor row set), does not assign it to any\nfields, pass it to other methods, or return it, and does not appear to close\nthe object on all exception paths out of the method.&nbsp; Failure to\nclose database resources on all paths out of a method may\nresult in poor performance, and could cause the application to\nhave problems communicating with the database.</p>',3,NULL,'Bad practice - Method may fail to close database resource on exception','READY','java','2015-04-06 11:18:24','2015-04-06 11:18:24',NULL,NULL,NULL,NULL,NULL,40,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'1h',NULL,NULL,NULL,0,'HTML'),(417,'IM_MULTIPLYING_RESULT_OF_IREM','IM_MULTIPLYING_RESULT_OF_IREM','findbugs','<p>\nThe code multiplies the result of an integer remaining by an integer constant.\nBe sure you don\'t have your operator precedence confused. For example\ni % 60 * 1000 is (i % 60) * 1000, not i % (60 * 1000).\n</p>',3,NULL,'Correctness - Integer multiply of result of integer remainder','READY','java','2015-04-06 11:18:24','2015-04-06 11:18:24',NULL,NULL,NULL,NULL,NULL,42,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'1h',NULL,NULL,NULL,0,'HTML'),(418,'NM_LCASE_HASHCODE','NM_LCASE_HASHCODE','findbugs','<p>\n      This class defines a method called <code>hashcode()</code>.\n      This method does not override the <code>hashCode()</code>\n      method in <code>java.lang.Object</code>, which is probably what was intended.\n      </p>\n\n<p>\nThis rule is deprecated, use {rule:squid:S1221} instead.\n</p>',3,NULL,'Class defines hashcode(); should it be hashCode()?','DEPRECATED','java','2015-04-06 11:18:24','2015-04-06 11:18:24',NULL,NULL,NULL,NULL,NULL,38,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'1h',NULL,NULL,NULL,0,'HTML'),(419,'DMI_SCHEDULED_THREAD_POOL_EXECUTOR_WITH_ZERO_CORE_THREADS','DMI_SCHEDULED_THREAD_POOL_EXECUTOR_WITH_ZERO_CORE_THREADS','findbugs','<p>(<a href=\"http://java.sun.com/javase/6/docs/api/java/util/concurrent/ScheduledThreadPoolExecutor.html#ScheduledThreadPoolExecutor(int)\">Javadoc</a>)\nA ScheduledThreadPoolExecutor with zero core threads will never execute anything; changes to the max pool size are ignored.\n</p>',1,NULL,'Correctness - Creation of ScheduledThreadPoolExecutor with zero core threads','READY','java','2015-04-06 11:18:24','2015-04-06 11:18:24',NULL,NULL,NULL,NULL,NULL,38,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'1h',NULL,NULL,NULL,0,'HTML'),(420,'InsufficientBranchCoverage','InsufficientBranchCoverage','common-java','<p>An issue is created on a file as soon as the branch coverage on this file is less than the required threshold.It gives the number of branches to be covered in order to reach the required threshold.</p>',2,NULL,'Insufficient branch coverage by unit tests','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,47,NULL,'LINEAR',NULL,'10min',NULL,NULL,NULL,NULL,NULL,0,'HTML'),(421,'InsufficientLineCoverage','InsufficientLineCoverage','common-java','<p>An issue is created on a file as soon as the line coverage on this file is less than the required threshold. It gives the number of lines to be covered in order to reach the required threshold.</p>',2,NULL,'Insufficient line coverage by unit tests','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,47,NULL,'LINEAR',NULL,'3min',NULL,NULL,NULL,NULL,NULL,0,'HTML'),(422,'InsufficientCommentDensity','InsufficientCommentDensity','common-java','<p>An issue is created on a file as soon as the comment density coverage on this file is less than the required threshold. It gives the number of comment lines to be written in order to reach the required threshold.</p>',2,NULL,'Insufficient comment density','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,16,NULL,'LINEAR',NULL,'3min',NULL,NULL,NULL,NULL,NULL,0,'HTML'),(423,'DuplicatedBlocks','DuplicatedBlocks','common-java','<p>An issue is created on a file as soon as there is a block of duplicated code on this file. It gives the number of blocks in the file.</p>',2,NULL,'Duplicated blocks','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,36,NULL,'LINEAR',NULL,'1h',NULL,NULL,NULL,NULL,NULL,0,'HTML'),(424,'SkippedUnitTests','SkippedUnitTests','common-java','<p>Skipped unit tests are considered as dead code. Either they should be activated again (and updated) or they should be removed.</p>',2,NULL,'Skipped unit tests','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,51,NULL,'LINEAR',NULL,'10min',NULL,NULL,NULL,NULL,NULL,0,'HTML'),(425,'FailedUnitTests','FailedUnitTests','common-java','<p>Test failures or errors generally indicate that regressions have been introduced. Those tests should be handled as soon as possible to reduce the cost to fix the corresponding regressions.</p>',2,NULL,'Failed unit tests','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,47,NULL,'LINEAR',NULL,'1h',NULL,NULL,NULL,NULL,NULL,0,'HTML'),(426,'IKNC_INCONSISTENT_HTTP_ATTRIBUTE_CASING','IKNC_INCONSISTENT_HTTP_ATTRIBUTE_CASING','fb-contrib','<p>This method sets or gets an HttpSession attribute with a parmeter name that was used in other locations\nbut with a different casing. As HttpSession attribute are case sensitive, this will be very confusing.',0,NULL,'Style - Method uses the same HttpSession attribute name but with different casing','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(427,'PSC_PRESIZE_COLLECTIONS','PSC_PRESIZE_COLLECTIONS','fb-contrib','<p>This method allocates a collection using the default constructor even though it is known\napriori how many items are going to be placed in the collection (or at least a reasonable guess)\nand thus needlessly causes intermediate reallocations of the collection.\n</p>',0,NULL,'Performance - Method does not presize the allocation of a collection','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(428,'CLI_CONSTANT_LIST_INDEX','CLI_CONSTANT_LIST_INDEX','fb-contrib','<p>This method accesses an array or list using a constant integer index. Often,\nthis is a typo where a loop variable is intended to be used. If however, specific\nlist indices mean different specific things, then perhaps replacing the list with\na first-class object with meaningful accessors would make the code less brittle.</p>',0,NULL,'Correctness - Method accesses list or array with constant index','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(429,'WOC_WRITE_ONLY_COLLECTION_FIELD','WOC_WRITE_ONLY_COLLECTION_FIELD','fb-contrib','<p>This class creates and initializes a collection as a field but then never access this collection\nto gain information, or fetch items from the collection. It is likely that this collection\nis left over from a past effort, and can be removed.',0,NULL,'Correctness - Class creates and initializes a collection but never reads or gains information from it','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(430,'SMA_STUTTERED_METHOD_ARGUMENTS','SMA_STUTTERED_METHOD_ARGUMENTS','fb-contrib','<p>This method calls a method passing the same value for two or more of the parameters.\nOften this is a cut/paste bug, but if not, it is confusing why you would pass the same value for two\ndifferent parameters. Perhaps an alternative method that just takes one parameter should be overridden\nin this case.</p>',0,NULL,'Style - Code calls a method passing the same value to two different arguments','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(431,'NAB_NEEDLESS_BOX_TO_CAST','NAB_NEEDLESS_BOX_TO_CAST','fb-contrib','<p>This method constructs a Boxed Primitive from a primitive only to call the primitiveValue() method to\ncast the value to another primitive typee. It is simpler to just use casting</p>\n<pre>\n  primitive i = new BoxedPrimitive(1.0).primitiveValue();\n    or\n  primitive i = BoxedPrimitive.valueOf(1.0).primitiveValue();\n\n    should just use \n  primitive i = (primitive)1.0;\n</pre>',0,NULL,'Performance - Method creates Boxed primitive from primitive only to cast to another primitive type','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(432,'NAB_NEEDLESS_BOOLEAN_CONSTANT_CONVERSION','NAB_NEEDLESS_BOOLEAN_CONSTANT_CONVERSION','fb-contrib','<p>This method assigns a Boxed boolean constant to a primitive boolean variable, or assigns a primitive boolean\nconstant to a Boxed boolean variable. Use the correct constant for the variable desired. Use</p>\n<pre>\n  boolean b = true;\n  boolean b = false;\n\n  or\n\n  Boolean b = Boolean.TRUE;\n  Boolean b = Boolean.FALSE;\n</pre>',0,NULL,'Performance - Method needlessly boxes a boolean constant','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(433,'CAO_CONFUSING_AUTOBOXED_OVERLOADING','CAO_CONFUSING_AUTOBOXED_OVERLOADING','fb-contrib','<p>This class defines two methods that differ only by a parameter being defined\nas Character vs. int, long, float or double. As autoboxing is present, it may be\nassumed that a parameter of \'a\' would map to the Character version, but does not.</p>',0,NULL,'Correctness - Class defines methods which confuse Character with int parameters','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(434,'SPP_STRINGBUFFER_WITH_EMPTY_STRING','SPP_STRINGBUFFER_WITH_EMPTY_STRING','fb-contrib','<p>This method calls the StringBuffer of StringBuilder constructor passing in a constant empty string (\"\").\nThis is the same as calling the default constructor, but makes the code work harder. Consider passing in a\ndefault size instead.',0,NULL,'Performance - Method passes empty string to StringBuffer of StringBuilder constructor','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(435,'FP_FINAL_PARAMETERS','FP_FINAL_PARAMETERS','fb-contrib','<p>This method correctly does not write to a parameter. To help document this, and to perhaps\nhelp the jvm optimize the invocation of this method, you should consider defining these parameters\nas final.</p>',0,NULL,'Style - Method does not define a parameter as final, but could','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(436,'MOM_MISLEADING_OVERLOAD_MODEL','MOM_MISLEADING_OVERLOAD_MODEL','fb-contrib','<p>This class \'overloads\' the same method with both an instance and static version. As the use\nof these two models is different, it will be confusing to the users of these methods.</p>',0,NULL,'Style - Class \'overloads\' a method with both instance and static versions','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(437,'MDM_RUNFINALIZATION','MDM_RUNFINALIZATION','fb-contrib','<p>Manually triggering finalization can result in serious performance problems and may be masking resource cleanup bugs.</p>',0,NULL,'Correctness - Method triggers finalization','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(438,'CBX_CUSTOM_BUILT_XML','CBX_CUSTOM_BUILT_XML','fb-contrib','<p>This method generates an xml based string by concatenating together various \nxml fragments, and variable values. Doing so makes the code difficult to read, modify \nand validate. It is much more clean to built xml structures in external files that are\nread in and transformed into the final product, thru modification by Transformer.setParameter.\n</p>',0,NULL,'Style - Method builds xml strings through adhoc concatenation','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(439,'LGO_LINGERING_GRAPHICS_OBJECT','LGO_LINGERING_GRAPHICS_OBJECT','fb-contrib','<p>This method allocates a java.awt.Graphics object but doesn\'t dispose of it when done. While\nthe garbage collecter will clean this up, given that a large number of Graphics objects can be\ncreated in a short period of time, it is recommended that you explicitly dispose() of them.\n  </p>',0,NULL,'Performance - Method allocations a java.awt.Graphics object without disposing it','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(440,'PCOA_PARTIALLY_CONSTRUCTED_OBJECT_ACCESS','PCOA_PARTIALLY_CONSTRUCTED_OBJECT_ACCESS','fb-contrib','<p>This constructor makes a call to a non-final method. Since this method can be overriden, a subclasses\nimplementation will be executing against an object that has not been initialized at the subclass level.\nYou should mark all methods called from the constructor as final to avoid this problem.</p>',0,NULL,'Correctness - Constructor makes call to non-final method','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(441,'SNG_SUSPICIOUS_NULL_LOCAL_GUARD','SNG_SUSPICIOUS_NULL_LOCAL_GUARD','fb-contrib','<p>This method tests a local variable to make sure it\'s not null before executing a conditional block of\ncode. However in the conditional block it reassigns the local variable. It is likely that the guard\nshould have been a check to see if the local variable is null, not that the local variable was not null.</p>',0,NULL,'Correctness - Method tests a local variable for not null as guard and reassigns it','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(442,'SEC_SIDE_EFFECT_CONSTRUCTOR','SEC_SIDE_EFFECT_CONSTRUCTOR','fb-contrib','<p>This method creates an object but does not assign this object to any variable or field.\nThis implies that the class operates through side effects in the constructor, which is a\nbad pattern to use, as it adds unnecessary coupling. Consider pulling the side effect out of\nthe constructor, into a separate method, or into the calling method.',0,NULL,'Style - Method uses a Side Effect Constructor','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(443,'ISB_TOSTRING_APPENDING','ISB_TOSTRING_APPENDING','fb-contrib','<p>This method concatenates the output of a toString() call into a StringBuffer/Builder.\nIt is simpler just pass the object you want to append to the to append call, as that form\ndoes not suffer the potential for NullPointerExceptions, and is easier to read.</p>',0,NULL,'Correctness - Method concatenates the result of a toString() call','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(444,'SMII_STATIC_METHOD_INSTANCE_INVOCATION','SMII_STATIC_METHOD_INSTANCE_INVOCATION','fb-contrib','<p>This method makes a static method call on an instance reference. For\nreading comprehension of the code is better to call the method on the class,\nrather than an instance. Perhaps this method\'s static nature has changed since\nthis code was written, and should be revisited.\n</p>',0,NULL,'Style - Method calls static method on instance reference','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(445,'BSB_BLOATED_SYNCHRONIZED_BLOCK','BSB_BLOATED_SYNCHRONIZED_BLOCK','fb-contrib','<p>This methods implements a synchronized block, but the code found at the beginning\nof this block  only accesses local variables, and not member variables, or this. \nTo be better performance move the code that access local variables only, above the\nsynchronized block, and leave the synchronized block only for field accesses, or access\nto this object.</p>',0,NULL,'Performance - Method overly synchronizes a block of code','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(446,'MDM_RUNTIME_EXIT_OR_HALT','MDM_RUNTIME_EXIT_OR_HALT','fb-contrib','<p>Calling <code>Runtime.exit()</code> or <code>Runtime.halt()</code> shuts down the entire Java virtual machine. This should only been done when it is appropriate. Such calls make it hard or impossible for your code to be invoked by other code. Consider throwing a RuntimeException instead.</p>',0,NULL,'Correctness - Method calls Runtime.exit() or Runtime.halt()','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(447,'LO_SUSPECT_LOG_CLASS','LO_SUSPECT_LOG_CLASS','fb-contrib','<p>This method creates a Logger by passing in a specification for a class that is unrelated\nto the class in which the logger is going to be used. This is likely caused by copy/paste code.',0,NULL,'Correctness - Method specifies an unrelated class when allocating a Logger','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(448,'NAB_NEEDLESS_BOX_TO_UNBOX','NAB_NEEDLESS_BOX_TO_UNBOX','fb-contrib','<p>This method constructs a Boxed Primitive from a primitive only to call the primitiveValue() method to\nconvert it back to a primitive. Just use the primitive value instead.</p>\n<pre>\n  primitive i = new BoxedPrimitive(1).primitiveValue();\n    or\n  primitive i = BoxedPrimitive.valueOf(1).primitiveValue();\n\n    should just use\n  primitive i = 1;\n</pre>',0,NULL,'Performance - Method creates Boxed primitive from primitive only to get primitive value','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(449,'JAO_JUNIT_ASSERTION_ODDITIES_INEXACT_DOUBLE','JAO_JUNIT_ASSERTION_ODDITIES_INEXACT_DOUBLE','fb-contrib','<p>This method calls assert with two doubles or Doubles. Due to the inprecision of doubles, you\nshould be using the assert method that takes a range parameter that gives a range of error.</p>',0,NULL,'Style - Method asserts that two doubles are exactly equal','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(450,'IKNC_INCONSISTENT_HTTP_PARAM_CASING','IKNC_INCONSISTENT_HTTP_PARAM_CASING','fb-contrib','<p>This method fetches an HttpServletRequest parameter with a parameter name that was used in other locations\nbut with a different casing. As HttpServletRequest parameters are case sensitive, this will be very confusing.',0,NULL,'Style - Method uses the same HttpRequest parameter name but with different casing','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(451,'LO_STUTTERED_MESSAGE','LO_STUTTERED_MESSAGE','fb-contrib','This method uses a logger method that takes an exception, and passes the result of\nthe getMessage() method on the exception that occurred as the log message.\nSince you are already passing in the exception, that message is already present in the\nlogs, and by passing it in as the message, you are just stuttering information.\nIt would be more helpful to provide a hand written message that describes the error in\nthis method, possibly including the values of key variables.',0,NULL,'Style - Method stutters exception message in logger','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(452,'ABC_ARRAY_BASED_COLLECTIONS','ABC_ARRAY_BASED_COLLECTIONS','fb-contrib','<p>This method passes an array as the key to a Map, element in a Set, or item in a List when\nthe contains method is used on the List. Since arrays do not, and cannot override the equals \nmethod, collection inclusion is based on the reference\'s address, which is probably not desired.\nIn the case that this is a TreeMap or TreeSet, consider passing a Comparator to the map\'s\nconstructor.\n</p>',0,NULL,'Correctness - Method uses array as basis of collection','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(453,'CEBE_COMMONS_EQUALS_BUILDER_ISEQUALS','CEBE_COMMONS_EQUALS_BUILDER_ISEQUALS','fb-contrib','<p>This method returns the result of equals on the EqualsBuilder type\ninstead of calling the method isEqual().</p>',0,NULL,'Correctness - Method returns the result of invoking equals() on EqualsBuilder','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(454,'EXS_EXCEPTION_SOFTENING_NO_CONSTRAINTS','EXS_EXCEPTION_SOFTENING_NO_CONSTRAINTS','fb-contrib','<p>This method is not constrained by an interface or superclass, but converts a caught checked exception\nto unchecked exception and thrown. It would be more appropriate just throw the checked exception, adding\nthe exception to the throws clause of the method.',0,NULL,'Style - Unconstrained method converts checked exception to unchecked','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(455,'EXS_EXCEPTION_SOFTENING_HAS_CHECKED','EXS_EXCEPTION_SOFTENING_HAS_CHECKED','fb-contrib','<p>This method\'s exception signature is constrained by an interface of super class to not throw a \nchecked exception that was caught. Therefore this exception was converted to an unchecked exception and \nthrown. It would probably be better to throw the closest checked exception allowed, and to annotate\nthe new exception with the original exception using the initial cause field.</p>',0,NULL,'Style - Constrained method converts checked exception to unchecked instead of another allowable checked exception','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(456,'MDM_STRING_BYTES_ENCODING','MDM_STRING_BYTES_ENCODING','fb-contrib','<p>The behavior of the <code>String(byte[] bytes)</code> and <code>String.getBytes()</code> is undefined if the string cannot be encoded in the platform\'s default charset. Instead, use the <code>String(byte[] bytes, String encoding)</code> or <code>String.getBytes(String encoding)></code> constructor which accepts the string\'s encoding as an argument. Be sure to specify the encoding used for the user\'s locale.</p>',0,NULL,'Correctness - Method encodes String bytes without specifying the character encoding','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(457,'NPMC_NON_PRODUCTIVE_METHOD_CALL','NPMC_NON_PRODUCTIVE_METHOD_CALL','fb-contrib','<p>This method ignores the return value of a common method that is assumed to be none mutating.\nIf this method does in fact not modify the object it is called on, there is no reason to call\nthis method, and it can be removed.',0,NULL,'Correctness - Method ignores return value of a non mutating method','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(458,'URV_INHERITED_METHOD_WITH_RELATED_TYPES','URV_INHERITED_METHOD_WITH_RELATED_TYPES','fb-contrib','<p>This inherited method is defined to return a java.lang.Object. However, the return types returned\nfrom this method can be defined by a more specific class or interface. If possible consider changing the\nreturn type in the inheritance hierarchy of this method, otherwise the caller of this method will be brittle\nin handling of the return type.</p>',0,NULL,'Style - Inherited method returns more specific type of object than declared','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(459,'SUA_SUSPICIOUS_UNINITIALIZED_ARRAY','SUA_SUSPICIOUS_UNINITIALIZED_ARRAY','fb-contrib','<p>This method returns an array that was allocated but apparently not initialized. It is\npossible that the caller of this method will do the work of initializing this array, but\nthat is not a common pattern, and it is assumed that this array has just been forgotten to \nbe initialized.</p>',0,NULL,'Correctness - Method returns an array that appears not to be initialized','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(460,'S508C_NO_SETLABELFOR','S508C_NO_SETLABELFOR','fb-contrib','<p>This class uses JLabels that do not specify what fields are being labeled.\nThis hampers screen readers from given appropriate feed back to users. Use\nthe JLabel.setLabelFor method to accomplish this.\n</p>',0,NULL,'Correctness - JLabel doesn\'t specify what it\'s labeling','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(461,'HES_EXECUTOR_NEVER_SHUTDOWN','HES_EXECUTOR_NEVER_SHUTDOWN','fb-contrib','<p>Most <code>ExecutorService</code> objects must be explicitly shutdown,\notherwise, their internal threads can prolong the running of the JVM, even when everything\nelse has stopped.</p>\n\n<p>FindBugs has detected that there are no calls to either the <code>shutdown()</code> or <code>shutdownNow()</code>\nmethod, and thus, the <code>ExecutorService</code> is not guaranteed to ever terminate.  This is especially\nproblematic for <code>Executors.newFixedThreadPool()</code> and most of the other convenience methods in\nthe <code>Executors</code> class.</p>\n\n<p>Even though there are some exceptions to this, particularly when a custom <code>ThreadFactory</code> is\nprovided, or for <code>ThreadPoolExecutor</code>s with <code>allowsCoreThreadTimeOut()</code> set to true,\nit is good practice to explictly shutdown the <code>ExecutorService</code> when its utility is done.</p>',0,NULL,'Correctness - Hanging ExecutorService','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(462,'COM_COPIED_OVERRIDDEN_METHOD','COM_COPIED_OVERRIDDEN_METHOD','fb-contrib','<p>This method is implemented using an exact copy of it\'s super class method\'s \nimplementation, which usually means that this method can just be removed.\n</p>',0,NULL,'Style - Method is implemented with an exact copy of it\'s superclass\'s method','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(463,'SPP_USE_CHARAT','SPP_USE_CHARAT','fb-contrib','<p>This method calls the toCharArray method on a String the fetch an array of characters, only\nto retrieve one of those characters by index. It is more performant to just use the charAt method.\n</p>',0,NULL,'Performance - Method fetches character array just to do the equivalent of the charAt method','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(464,'ICA_INVALID_CONSTANT_ARGUMENT','ICA_INVALID_CONSTANT_ARGUMENT','fb-contrib','<p>This method passes an invalid constant value to a method parameter that expects only a select number of possible values.\nThis is likely going to cause this method to fail to operate correctly.</p>',0,NULL,'Correctness - Invalid Constant Argument','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(465,'IPU_IMPROPER_PROPERTIES_USE','IPU_IMPROPER_PROPERTIES_USE','fb-contrib','<p>This method places non-String objects into a Properties object. As the Properties object\nis intented to be a String to String map, putting non String objects is wrong, and takes advantage\nof a design flaw in the Properties class by deriving from Hashtable instead of using aggregation.\nIf you want a collection that holds other types of objects, use a Hashtable, or better still newer collections\nlike HashMap or TreeMap.',0,NULL,'Correctness - Method puts non-String values into a Properties object','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(466,'CAAL_CONFUSING_ARRAY_AS_LIST','CAAL_CONFUSING_ARRAY_AS_LIST','fb-contrib','<p>This method passes an array of primitive values to the Array.asList call. As primitive\nvalues in arrays aren\'t automatically promoted to boxed primitives in arrays, the asList call\ncannot convert this array in a list of boxed primitives. It therefore just creates an array\nwith one item in it, the array itself. This is rarely what is desired.\n</p>',0,NULL,'Correctness - Method calls Array.asList on an array of primitive values','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(467,'SPP_USE_BIGDECIMAL_STRING_CTOR','SPP_USE_BIGDECIMAL_STRING_CTOR','fb-contrib','<p>This method calls the BigDecimal constructor that takes a double, and passes a literal double constant value. Since \nthe use of BigDecimal is to get better precision than double, by passing a double, you only get the precision of double number\nspace. To take advantage of the BigDecimal space, pass the number as a string. </p>',0,NULL,'Correctness - Method passes double value to BigDecimal Constructor','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(468,'S508C_NULL_LAYOUT','S508C_NULL_LAYOUT','fb-contrib','<p>This class passes null to setLayout, which specifies that components are\nto be laid out using absolute coordinates. This makes making changes for\nfont sizes, etc, difficult as items will not reposition\n</p>',0,NULL,'Correctness - Gui uses absolute layout','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(469,'JAO_JUNIT_ASSERTION_ODDITIES_IMPOSSIBLE_NULL','JAO_JUNIT_ASSERTION_ODDITIES_IMPOSSIBLE_NULL','fb-contrib','<p>This method asserts that a primitive value that was autoboxed into a boxed primitive was not \nnull. This will never happen, as primitives are never null, and thus the autoboxed value isn\'t \neither.</p>',0,NULL,'Correctness - Method asserts that an auto-boxed value is not null','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(470,'NRTL_NON_RECYCLEABLE_TAG_LIB','NRTL_NON_RECYCLEABLE_TAG_LIB','fb-contrib','<p>This Tag library class implements an attribute who\'s associated backing store field\nis modified at another point in the tag library. In order for a taglibrary to be\nrecycleable, only the container is allowed to change this attribute, through the use\nof the setXXX method of the taglib. By modifying the value programmatically, the\ncontainer will not initialize the attribute correctly on reuse.</p>',0,NULL,'Correctness - Tag library is not recycleable','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(471,'PIS_POSSIBLE_INCOMPLETE_SERIALIZATION','PIS_POSSIBLE_INCOMPLETE_SERIALIZATION','fb-contrib','<p>This method implements Serializable but is derived from a\nclass that does not. The super class has fields that are not serialized\nbecause this class does not take the responsibility of writing these fields out\neither using Serializable\'s writeObject method, or Externalizable\'s writeExternal\nmethod. Therefore when this class is read from a stream, the superclass fields\nwill only be initialized to the values specified in it\'s default constructor.\nIf possible, change the superclass to implement Serializable, or implement\nSerializable or Externalizable methods in the child class.</p>',0,NULL,'Correctness - Class doesn\'t serialize superclass fields','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(472,'NAB_NEEDLESS_BOXING_STRING_CTOR','NAB_NEEDLESS_BOXING_STRING_CTOR','fb-contrib','<p>This method passes a primitive value retrieved from a BoxedPrimitive.parseBoxedPrimitive(\"1\") call  to \nthe same class\'s constructor. It is simpler to just pass the string to the BoxedPrimitives constructor.\n</p>',0,NULL,'Performance - Method passes parsed string to primitive wrapper constructor','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(473,'NCS_NEEDLESS_CUSTOM_SERIALIZATION','NCS_NEEDLESS_CUSTOM_SERIALIZATION','fb-contrib','<p>This method implements the Serializable interface by performing the same operations that\nwould be done if this method did not exist. Since this is the case, this method is not needed.</p>',0,NULL,'Correctness - Method needlessly implements what is default streaming behavior','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(474,'EXS_EXCEPTION_SOFTENING_NO_CHECKED','EXS_EXCEPTION_SOFTENING_NO_CHECKED','fb-contrib','<p>This method\'s exception signature is constrained by an interface or super class to not throw\nany checked exceptions. Therefore a caught checked exception was converted to an unchecked exception\nand thrown. However it appears that the class in question is owned by the same author as the constraining\ninterface or superclass. Consider changes the signature of this method to include the checked exception.</p>',0,NULL,'Style - Constrained method converts checked exception to unchecked','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(475,'IPU_IMPROPER_PROPERTIES_USE_SETPROPERTY','IPU_IMPROPER_PROPERTIES_USE_SETPROPERTY','fb-contrib','<p>This method uses the inherited method from Hashtable put(String key, Object value) in\na Properties object. Since the Properties object was intended to be only a String to String\nmap, use of the derived put method is discouraged. Use the Properties.setProperty method instead.',0,NULL,'Correctness - Method uses Properties.put instead of Properties.setProperty','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(476,'MDM_SECURERANDOM','MDM_SECURERANDOM','fb-contrib','<p>The <code>SecureRandom()</code> constructors and <code>SecureRandom.getSeed()</code> method are deprecated. Call <code>SecureRandom.getInstance()</code> and <code>SecureRandom.getInstance().generateSeed()</code> instead.</p>',0,NULL,'Correctness - Method calls deprecated SecureRandom method','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(477,'SPP_USELESS_CASING','SPP_USELESS_CASING','fb-contrib','This method compares two strings with compareToIgnoreCase or equalsIgnoreCase, after having\ncalled toUpperCase or toLowerCase on the string in question. As you are comparing with out\nconcern to case, the toUpperCase or toLowerCase calls are pointless and can be removed.',0,NULL,'Performance - Method compares string without case after enforcing a case','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(478,'MDM_WAIT_WITHOUT_TIMEOUT','MDM_WAIT_WITHOUT_TIMEOUT','fb-contrib','<p>Calling <code>{2}</code> without timeout could block forever. Consider using a timeout to detect deadlocks or performance problems. Thread.join() Object.wait() Condition.await() Lock.lock() Lock.lockInterruptibly()</p>',0,NULL,'MT Correctness - Method sleeps without timeout','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(479,'WOC_WRITE_ONLY_COLLECTION_LOCAL','WOC_WRITE_ONLY_COLLECTION_LOCAL','fb-contrib','<p>This method creates and initializes a collection but then never access this collection\nto gain information, or fetch items from the collection. It is likely that this collection\nis left over from a past effort, and can be removed.',0,NULL,'Correctness - Method creates and initializes a collection but never reads or gains information from it','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(480,'PMB_POSSIBLE_MEMORY_BLOAT','PMB_POSSIBLE_MEMORY_BLOAT','fb-contrib','<p>This class defines static fields that are collections or StringBuffers that do not\nappear to have any way to clear or reduce their size. This is a potential cause of \nmemory bloat.</p>',0,NULL,'Correctness - Class defines static field that appears to allow memory bloat','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(481,'MDM_SIGNAL_NOT_SIGNALALL','MDM_SIGNAL_NOT_SIGNALALL','fb-contrib','<p><code>Condition.signalAll()</code> is prefered over <code>Condition.signal()</code>. Calling <code>signal()</code> only wakes up one thread, meaning that the thread woken up might not be the one waiting for the condition that the caller just satisfied.</p>',0,NULL,'MT Correctness - Method calls Condition.signal() rather than Condition.signalAll()','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(482,'OC_OVERZEALOUS_CASTING','OC_OVERZEALOUS_CASTING','fb-contrib','<p>This method casts the right hand side of an expression to a class that is more specific than the \nvariable on the left hand side of the assignment. The cast only has to be as specific as what the variable\nthat is on the left. Using a more specific type on the right hand side just increases cohesion.',0,NULL,'Correctness - Method manually casts the right hand side of an assignment more specifically than needed','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(483,'LII_LIST_INDEXED_ITERATING','LII_LIST_INDEXED_ITERATING','fb-contrib','<p>This method uses an integer based for loop to iterator over a java.util.List, by calling\nList.get(i) each time thru the loop. The integer is not used for other reasons. It is better\nto use an Iterator instead, as depending on List implementation, iterators can perform better, \nand they also allow for exchanging of other collection types without issue.</p>',0,NULL,'Style - Method uses integer based for loops to iterate over a List','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(484,'NMCS_NEEDLESS_MEMBER_COLLECTION_SYNCHRONIZATION','NMCS_NEEDLESS_MEMBER_COLLECTION_SYNCHRONIZATION','fb-contrib','<p>This class defines a private collection member as synchronized. It appears however\nthat this collection isn\'t only modified in a static initializer, or constructor. As these\ntwo areas are guaranteed to be thread safe, defining this collection as synchronized is\nunnecessary and a potential performance bottleneck.</p>',0,NULL,'Performance - Class defines unneeded synchronization on member collection','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(485,'USS_USE_STRING_SPLIT','USS_USE_STRING_SPLIT','fb-contrib','<p>This method uses a StringTokenizer to split up a String and then walks thru the\nseparated elements and builds an array from these enumerated values. It is simpler \nand easier to use the String.split method.</p>\n<p>PLEASE NOTE: String.split will return an array of 1 element when passed the \nempty string, as opposed to using StringTokenizer which returns false on the first\nhasMoreElements/hasMoreTokens call. So you may need to use</p>\n<pre>\n  if (s.length() > 0)\n    return s.split(\";\");\n  return new String[0];\n</pre>',0,NULL,'Style - Method builds String array using String Tokenizing','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(486,'ODN_ORPHANED_DOM_NODE','ODN_ORPHANED_DOM_NODE','fb-contrib','<p>This method creates a DOM node but does not attach it to a DOM document.\n</p>',0,NULL,'Correctness - Method creates DOM node but doesn\'t attach it to a document','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(487,'URV_CHANGE_RETURN_TYPE','URV_CHANGE_RETURN_TYPE','fb-contrib','<p>This method is defined to return a java.lang.Object. However, the return types\nreturned from this method can be defined by a more specific class or interface. Since this\nmethod is not derived from a superclass or interface, it would be more clear to\nchange the return type of this method.</p>',0,NULL,'Style - Method returns more specific type of object than declared','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(488,'PCAIL_POSSIBLE_CONSTANT_ALLOCATION_IN_LOOP','PCAIL_POSSIBLE_CONSTANT_ALLOCATION_IN_LOOP','fb-contrib','<p>This method allocates an object using the default constructor in a loop, and then\nonly uses it in a quasi-static way. It is never assigned to anything that lives outside\nthe loop, and could potentially be allocated once outside the loop. Often this can be\nachieved by calling a clear() like method in the loop, to reset the state of the object\nin the loop.',0,NULL,'Performance - Method allocates an object that is used in a constant way in a loop','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(489,'CU_CLONE_USABILITY_THROWS','CU_CLONE_USABILITY_THROWS','fb-contrib','<p>This class implements the Cloneable interface but defines its clone method to still return\na CloneNotSupportedException. Since you are implementing clone() it would make sense that the method\nin question will <em>not</em> throw that exception, so annotating your method with it just makes client use\nof your more painful as they have to handle an exception that will never happen. Just remove the\nthrows clause from your method.\n</p>',0,NULL,'Style - Clone method declares it throws CloneNotSupportedException','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(490,'UP_UNUSED_PARAMETER','UP_UNUSED_PARAMETER','fb-contrib','<p>This method defines parameters that are never used. As this method is either static of private,\nand can\'t be derived from, it is safe to remove these parameters and simplify your method.\nYou should consider, while unlikely, that this method may be used reflectively, and thus you will\nwant to change that call as well.',0,NULL,'Style - Unused Parameter','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(491,'AIOB_ARRAY_INDEX_OUT_OF_BOUNDS','AIOB_ARRAY_INDEX_OUT_OF_BOUNDS','fb-contrib','<p>This method access an array element using a literal index that is know to be outside the size of the specified\narray. This will cause an ArrayIndexOutOfBoundsException at runtime</p>',0,NULL,'Correctness - Method attempts to access an array element outside the array\'s size','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(492,'FPL_FLOATING_POINT_LOOPS','FPL_FLOATING_POINT_LOOPS','fb-contrib','<p>This method uses floating point variables to index a loop. Since floating point\nmath is imprecise, rounding errors will accumulate over time each time the loop is\nexecuted. It is usually better to use integer indexing, and calculate the new value\nof the floating point number at the top of the loop body.</p>',0,NULL,'Correctness - Method uses floating point indexed loops','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(493,'CU_CLONE_USABILITY_MISMATCHED_RETURN','CU_CLONE_USABILITY_MISMATCHED_RETURN','fb-contrib','<p>This class implements the Cloneable interface but defines its clone method to return a type\nthat is different than the class itself, or any interfaces that the class implements.\n</p>',0,NULL,'Style - Clone method declares it returns an type different then the owning class','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(494,'CTU_CONFLICTING_TIME_UNITS','CTU_CONFLICTING_TIME_UNITS','fb-contrib','<p>This method takes two values that appear to be representing time, and performs arithmetic operations on this\ntwo values directly, even though it appears that the two values are representing different time units, such as\nadding a millisecond value to a nanosecond value. You should convert the two values to the same time unit before\nperforming this calculation in order for it to be meaningful.',0,NULL,'Correctness - Conflicting Time Units','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(495,'TR_TAIL_RECURSION','TR_TAIL_RECURSION','fb-contrib','<p>This method recursively calls itself as the last statement of the method\n(Tail Recursion). This method can be easily refactored into a simple loop, which\nwill make it more performant, and reduce the stack size requirements.</p>',0,NULL,'Performance - Method employs tail recursion','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(496,'IICU_INCORRECT_INTERNAL_CLASS_USE','IICU_INCORRECT_INTERNAL_CLASS_USE','fb-contrib','<p>This class makes use of internal api classes. As these\nclasses are not documented, nor externally released as part of the api, they are subject\nto change or removal. You should not be using these classes.</p>\nPackages that shouldn\'t be used are:\n<ul>\n  <li>com.sun.xxx</li>\n  <li>org.apache.xerces.xxx</li>\n  <li>org.apache.xalan.xxx</li>\n</ul>',0,NULL,'Correctness - Class relies on internal api classes','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(497,'SJVU_SUSPICIOUS_JDK_VERSION_USE','SJVU_SUSPICIOUS_JDK_VERSION_USE','fb-contrib','<p>This method calls a method that does not exist, on a class that does not exist in the jdk that\nthis class has been compiled for. This can happen if you compile the class specifying the -source and\n-target options, and use a version that is before the version of the compiler\'s JDK.</p>',0,NULL,'Correctness - Method uses rt.jar class or method that does not exist','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(498,'LO_SUSPECT_LOG_PARAMETER','LO_SUSPECT_LOG_PARAMETER','fb-contrib','<p>This constructor declares a parameter that is a Logger. As loggers are meant to be\ncreated statically per class, it doesn\'t make sense that you would pass a Logger from one\nclass to another. Declare the Logger static in each class instead.</p>',0,NULL,'Correctness - Constructor declares a Logger parameter','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(499,'SPP_USE_ISNAN','SPP_USE_ISNAN','fb-contrib','<p>This method compares a douhle or float to the constant Double.NaN or Float.NaN. You should use\nDouble.isNaN(d) or Float.isNaN(f) if a primitive; or d.isNaN() or f.isNaN() if a boxed double, instead.</p>',0,NULL,'Correctness - Method compares a double to Double.NAN','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(500,'UVA_USE_VAR_ARGS','UVA_USE_VAR_ARGS','fb-contrib','<p>This method defines a parameter list that ends with an array. As this class is compiled with\nJava 1.5 or better, this parameter could be defined as a vararg parameter instead, which can be\nmore convienent for client developers to use. This is not a bug, per se, just an improvement.',0,NULL,'Style - Method defines parameter list with array as last argument, rather than vararg','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(501,'SPP_EMPTY_CASING','SPP_EMPTY_CASING','fb-contrib','This method passes the empty string \"\" to equalsIgnoreCase or compareToIgnoreCase, as the empty string\nis not case sensitive using equals is simpler. It would be even simpler to do a length() == 0 test.',0,NULL,'Style - Method passes an empty string to equalsIgnoreCase or compareToIgnoreCase','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(502,'BED_BOGUS_EXCEPTION_DECLARATION','BED_BOGUS_EXCEPTION_DECLARATION','fb-contrib','<p>This method declares that it throws a checked exception that it does not throw. As this method is\neither a constructor, static method or private method, there is no reason for this method to declare\nthe exception in its throws clause, and just causes calling methods to unnecessarily handle an exception\nthat will never be thrown. The exception in question should be removed from the throws clause.</p>',0,NULL,'Correctness - Non derivable method declares throwing an exception that isn\'t thrown','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(503,'SPP_NULL_BEFORE_INSTANCEOF','SPP_NULL_BEFORE_INSTANCEOF','fb-contrib','This method checks a reference for null just before seeing if the reference is an instanceof some class.\nSince instanceof will return false for null references, the null check is not needed.',0,NULL,'Correctness - Method checks a reference for null before calling instanceof','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(504,'PUS_POSSIBLE_UNSUSPECTED_SERIALIZATION','PUS_POSSIBLE_UNSUSPECTED_SERIALIZATION','fb-contrib','<p>This method serializes an instance of a non-static inner class. Since this class has a\nreference to the containing class, this outer class will be serialized as well. This is often\nnot intentional, and will make the amount of data that is serialized much more than is needed.\nIf the outer classes is not desired to be serialized, either make the inner class static, or\npull it out into a separate \"first class\" class.',0,NULL,'Correctness - Method serializes an instance of a non-static inner class','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(505,'CE_CLASS_ENVY','CE_CLASS_ENVY','fb-contrib','<p><em>THIS DETECTOR IS HIGHLY EXPERIMENTAL AND IS LIKELY TO CREATE A LOT OF FUD</em></p>\n<p>This method makes extensive use of methods from another class over methods of it\'s own\nclass. Typically this means that the functionality that is accomplished by this method\nmost likely belongs with the class that is being used so liberally. Consider refactoring this\nmethod to be contained in that class, and to accept all the parameters needed in the method signature.</p>',0,NULL,'Style - Method excessively uses methods of another class','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(506,'SPP_SUSPECT_STRING_TEST','SPP_SUSPECT_STRING_TEST','fb-contrib','<p>This method tests a string, and groups null values with real strings, leaving empty strings as another\ncase. This might be perfectly valid, but normally, null strings and empty strings are logically handled the same way,\nand so this test may be flawed.</p>\n<p>Pattern found is one of the following\n<pre>if ((s == null) || (s.length() > 0))</pre> -- did you mean ((s == null) || (s.length() == 0))?\n<pre>if ((s == null) || (s.length() != 0))</pre> -- did you mean ((s == null) || (s.length() == 0))?\n<pre>if ((s != null) && (s.length() == 0))</pre> -- did you mean ((s != null) && (s.length() > 0))?\nor perhaps ((s == null) || (s.length() == 0))?\n</p>',0,NULL,'Correctness - Method treats null and normal strings differently than an empty strings','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(507,'SPP_INTERN_ON_CONSTANT','SPP_INTERN_ON_CONSTANT','fb-contrib','<p>This method calls intern on a constant string. As constant strings are already interned, this call\nis superfluous</p>',0,NULL,'Correctness - Method calls intern on a string constant','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(508,'URV_UNRELATED_RETURN_VALUES','URV_UNRELATED_RETURN_VALUES','fb-contrib','<p>This method returns two or more unrelated types of objects (Related only through java.lang.Object).\nThis will be very confusing to the code that must call it.</p>',0,NULL,'Style - Method returns different types of unrelated Objects','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(509,'AWCBR_ARRAY_WRAPPED_CALL_BY_REFERENCE','AWCBR_ARRAY_WRAPPED_CALL_BY_REFERENCE','fb-contrib','<p>This method uses a one element array to wrap an object that is to be passed to a method as an argument\nto simulate call by pointer ala C++. It is better to define a proper return class type that holds all\nthe relevant information retrieved from the called method.</p>',0,NULL,'Style - Method uses 1 element array to simulate call by reference','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(510,'HES_LOCAL_EXECUTOR_SERVICE','HES_LOCAL_EXECUTOR_SERVICE','fb-contrib','<p><code>ExecutorService</code>s are typically instantiated as fields so that many tasks can be executed on a controlled number of <code>Thread</code>s across many method calls.  Therefore, it is unusual for <code>ExecutorService</code>s to be a local variable, where tasks will be added only one time, in the enclosing method. </p>\n\n<p>Furthermore, when a local <code>ExecutorService</code> reaches the end of scope and goes up for garbage collection, the internal <code>Thread</code>s are not necessarily terminated and can prevent the JVM from ever shutting down.</p>\n\n<p>Consider making this local variable a field and create a method that will explicitly shutdown the <code>ExecutorService</code></p>',0,NULL,'Correctness - Hanging ExecutorService','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(511,'UCC_UNRELATED_COLLECTION_CONTENTS','UCC_UNRELATED_COLLECTION_CONTENTS','fb-contrib','<p>This method adds unrelated objects to a collection or array, requiring careful and brittle\ndata access to that collection. Create a separate class with properties needed, and add\nan instance of this class to the collection or array, if possible.</p>',0,NULL,'Style - Method adds unrelated types to collection or array','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(512,'SPP_NON_ARRAY_PARM','SPP_NON_ARRAY_PARM','fb-contrib','This method expects an array to be passed as one of its parameters, but unfortunately defines\nthe parameter as Object. This invocation of this method does not pass an array and will throw\nan exception when run.',0,NULL,'Correctness - Method passes a non array object to a parameter that expects an array','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(513,'CU_CLONE_USABILITY_OBJECT_RETURN','CU_CLONE_USABILITY_OBJECT_RETURN','fb-contrib','<p>This class implements the Cloneable interface but defines its clone method to return an\nObject. Since most likely users of this method will need to cast it to the real type, this will\nbe more painful than necessary. Just declare the return value to be the type of this class.\n</p>',0,NULL,'Style - Clone method declares it returns an Object','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(514,'LSYC_LOCAL_SYNCHRONIZED_COLLECTION','LSYC_LOCAL_SYNCHRONIZED_COLLECTION','fb-contrib','<p>This method creates a synchronized collection and store the reference to it\nin a local variable. As local variables are by definition threadsafe, it seems\nquestionable that this collection needs to be synchronized.</p>\n<p>\n<table>\n  <tr><th>If you are using</th><th>consider using</th></tr>\n  <tr><td>java.util.Vector</td><td>java.util.ArrayList</td></tr>\n  <tr><td>java.util.Hashtable</td><td>java.util.HashMap</td></tr>\n  <tr><td>java.lang.StringBuffer</td><td>java.lang.StringBuilder</td></tr>\n</table>\n</p>',0,NULL,'Correctness - Method creates local variable-based synchronized collection','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(515,'SPP_STRINGBUILDER_IS_MUTABLE','SPP_STRINGBUILDER_IS_MUTABLE','fb-contrib','This method calls StringBuilder.append and assigns the results to the same StringBuilder as\n  <pre>sb = sb.append(\"foo\")</pre>\n  As StringBuilder is mutable this is not necessary.\n  This is also true of StringBuffer.',0,NULL,'Correctness - Method needlessly assigns a StringBuilder to itself, as it\'s mutable','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(516,'DSOC_DUBIOUS_SET_OF_COLLECTIONS','DSOC_DUBIOUS_SET_OF_COLLECTIONS','fb-contrib','<p>This method creates a set that contains other collections, or a Map whose keySet is\nanother collection. As collections tend to calculate hashCode, equals and compareTo by \niterating the contents of the collection, this can perform poorly.</p>\n<p>In addition, when a set is used, you typically are using it to do \'contains\', or \'find\'\ntype functionality, which seems dubious when done on a collection</p>\n<p>Finally, as a collection is often modified, problems will occur if the collection is \ncontained in a set, because the hashCode, equals or compareTo values will change while the\ncollection is in the set</p>\n<p>If you wish to maintain a collection of collections, it is probably better to use a List\nas the outer collection</p>',0,NULL,'Performance - Method uses a set of collections','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(517,'LO_INCORRECT_NUMBER_OF_ANCHOR_PARAMETERS','LO_INCORRECT_NUMBER_OF_ANCHOR_PARAMETERS','fb-contrib','This method passes the wrong number of parameters to a slf4j logging method (error, warn, info, debug) based on the number of anchors {} in the \nformat string. An additional exception argument is allowed if found.',0,NULL,'Correctness - Method passes an incorrect number of parameters to an SLF4J logging statement','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(518,'SCII_SPOILED_CHILD_INTERFACE_IMPLEMENTOR','SCII_SPOILED_CHILD_INTERFACE_IMPLEMENTOR','fb-contrib','<p>This class declares that it implements an interface, but does so by relying on methods supplied\nby superclasses, even though those superclasses know nothing about the interface in question. If you wish\nto have the child not implement all the methods of the interface, it would probably be better to declare\nthe superclass as implementing the interface, and if that class does not provide all the methods, then declare\nthat superclass abstract.</p>',0,NULL,'Style - Class implements interface by relying on unknowing superclass methods','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(519,'AOM_ABSTRACT_OVERRIDDEN_METHOD','AOM_ABSTRACT_OVERRIDDEN_METHOD','fb-contrib','<p>This abstract method is derived from a concrete method implementation. It is highly\nsuspect that the super class method\'s implementation would be cast away. \n</p>',0,NULL,'Correctness - Abstract method overrides a concrete implementation','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(520,'PL_PARALLEL_LISTS','PL_PARALLEL_LISTS','fb-contrib','<p>This class appears to maintain two or more lists or arrays who\'s contains is related one-for-one\nthrough the index of the list or array. Consider creating a separate class to hold all the related \npieces of information, and adding instances of this class to just one list or array, or if just two values, use\na Map to associate one value with the other.</p>',0,NULL,'Style - Class defines two or more one for one associated lists or arrays','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(521,'OCP_OVERLY_CONCRETE_PARAMETER','OCP_OVERLY_CONCRETE_PARAMETER','fb-contrib','<p>This method uses concrete classes for parameters when only methods defined in an implemented\ninterface or super class are used. Consider increasing the abstraction of the interface to\nmake low impact changes easier to accomplish in the future.</p>',0,NULL,'Style - Method needlessly defines parameter with concrete classes','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(522,'AIOB_ARRAY_STORE_TO_NULL_REFERENCE','AIOB_ARRAY_STORE_TO_NULL_REFERENCE','fb-contrib','<p>This method attempts to store an array element into an an array that appears to not have been allocated.',0,NULL,'Correctness - Method attempts to store an array element to an array that does not appear to be allocated','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(523,'CFS_CONFUSING_FUNCTION_SEMANTICS','CFS_CONFUSING_FUNCTION_SEMANTICS','fb-contrib','<p>This method appears to modify a parameter, and then return this parameter as the \nmethods return value. This will be confusing to callers of this method, as it won\'t be\napparent that the \'original\' passed in parameter will be changed as well. If the purpose\nof this method is to change the parameter, it would be more clear to change the method to \na have a void return value. If a return type is required due to interface or superclass contract,\nperhaps a clone of the parameter should be made.</p>',0,NULL,'Style - Method returns modified parameter','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(524,'SACM_STATIC_ARRAY_CREATED_IN_METHOD','SACM_STATIC_ARRAY_CREATED_IN_METHOD','fb-contrib','<p>This method creates an array initialized by constants. Each time this method is called\nthis array will be recreated. It would be more performant to define the array as a\nstatic field of the class instead.</p>',0,NULL,'Performance - Method creates array using constants','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(525,'CHTH_COMMONS_HASHCODE_BUILDER_TOHASHCODE','CHTH_COMMONS_HASHCODE_BUILDER_TOHASHCODE','fb-contrib','<p>This method returns the result of hashCode on the HashCodeBuilder type\ninstead of calling the method toHashCode().</p>',0,NULL,'Correctness - Method returns the result of invoking hashCode() on HashCodeBuilder','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(526,'JVR_JDBC_VENDOR_RELIANCE','JVR_JDBC_VENDOR_RELIANCE','fb-contrib','<p>This method uses jdbc vendor specific classes and method to perform database work.\nThis makes the code specific to this vendor, and unable to run on other databases.</p>',0,NULL,'Correctness - Method uses jdbc vendor specific classes and methods','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(527,'DRE_DECLARED_RUNTIME_EXCEPTION','DRE_DECLARED_RUNTIME_EXCEPTION','fb-contrib','<p>This method declares a RuntimeException derived class in it\'s throws clause.\nThis may indicate a misunderstanding as to how unchecked exceptions are handled.\nIf is felt that a RuntimeException is so prevalent that it should be declared, it \nis probably a better idea to prevent the occurance in code.</p>',0,NULL,'Style - Method declares RuntimeException in throws clause','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(528,'NIR_NEEDLESS_INSTANCE_RETRIEVAL','NIR_NEEDLESS_INSTANCE_RETRIEVAL','fb-contrib','<p>This method calls a method to load a reference to an object, and then only\nuses it to load a static member of that instance\'s class. It is simpler and\nbetter performant to just load the static field from the class itself.</p>',0,NULL,'Performance - Method retrieves instance to load static member','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(529,'MRC_METHOD_RETURNS_CONSTANT','MRC_METHOD_RETURNS_CONSTANT','fb-contrib','<p>This private or static method only returns one constant value. As this method is private or static,\nit\'s behavior can\'t be overridden, and thus the return of a constant value seems dubious.\nEither the method should be changed to return no value, or perhaps another return value\nwas expected to be returned in another code path in this method.</p>',0,NULL,'Style - Private method only returns one constant value','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(530,'NAB_NEEDLESS_AUTOBOXING_CTOR','NAB_NEEDLESS_AUTOBOXING_CTOR','fb-contrib','<p>This method passes a wrapped primitive object to the same class\'s constructor.\nSince wrapper classes are immutable, you can just use the original object, rather\nthan constructing a new one. This code works because of an abuse of autoboxing.\n</p>',0,NULL,'Performance - Method passes primitive wrapper to same primitive wrapper constructor','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(531,'HES_EXECUTOR_OVERWRITTEN_WITHOUT_SHUTDOWN','HES_EXECUTOR_OVERWRITTEN_WITHOUT_SHUTDOWN','fb-contrib','<p>Most <code>ExecutorService</code> objects must be explicitly shutdown, otherwise, their internal threads can prevent the JVM from ever shutting down, even when everything else has stopped.</p>\n\n<p>FindBugs has detected that something like the following is happening:<br/>\n<code>\nExecutorService executor = ... //e.g. Executors.newCachedThreadPool();<br/>\n...<br/>\npublic void reset() {<br/>\n&nbsp;&nbsp;&nbsp;this.executor = Executors.newCachedThreadPool(); <br/>\n&nbsp;&nbsp;&nbsp;this.executor.execute(new SampleExecutable()); <br/>\n}<br/>\n</code>\nFor normal objects, losing the last reference to them like this would trigger the object to be cleaned up\nin garbage collection.  For <code>ExecutorService</code>s, this isn\'t enough to terminate the internal threads in the\nthread pool, and the <code>ExecutorService</code> isn\'t guaranteed to shutdown, causing the JVM to never stop. <br/>\nTo fix this, simply add a call to <code>shutdown()</code> like this:<br/>\n<code>\nExecutorService executor = ... //e.g. Executors.newCachedThreadPool();<br/>\n...<br/>\npublic void reset() {<br/>\n<b>&nbsp;&nbsp;&nbsp;this.executor.shutDown();</b> <br/>\n&nbsp;&nbsp;&nbsp;this.executor = Executors.newCachedThreadPool(); <br/>\n&nbsp;&nbsp;&nbsp;this.executor.execute(new SampleExecutable()); <br/>\n}\n</code>\n</p>\n\n<p>Even though there are some exceptions to this, particularly when a custom <code>ThreadFactory</code> is\nprovided, or for <code>ThreadPoolExecutor</code>s with <code>allowsCoreThreadTimeOut()</code> set to true,\nit is good practice to explictly shutdown the <code>ExecutorService</code> at the end of execution, or\nwhen it is being replaced.</p>\n\n<p><b>Note:</b> <code>ExecutorService</code>s are generally created once in a program\'s lifecycle.  If you find yourself\nreplacing the <code>ExecutorService</code>, perhaps you may consider restructuring your code to use calls like\n<code>awaitTermination()</code> or <code>Future</code>s/<code>Callable</code>s to avoid recreating the <code>ExecutorService</code>.</p>',0,NULL,'Correctness - Hanging ExecutorService','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(532,'JAO_JUNIT_ASSERTION_ODDITIES_ASSERT_USED','JAO_JUNIT_ASSERTION_ODDITIES_ASSERT_USED','fb-contrib','<p>This method uses a java assert to assure that a certain state is in effect. As this is\na junit test it makes more sense to either check this condition with a junit assert, or allow\na following exception to occur.</p>',0,NULL,'Correctness - Method uses java asserts rather than a junit assertion','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(533,'DDC_DOUBLE_DATE_COMPARISON','DDC_DOUBLE_DATE_COMPARISON','fb-contrib','<p>This method compares dates with two comparisons, rather than using the reverse comparison.\nSo This pattern\n<pre>\n  if ((date1.equals( date2 )) || (date1.after( date2 )))\n</pre>\ncould become\n<pre>\n  if (date1.compareTo( date2 ) >= 0)\n</pre>\nand\n<pre>\n  if ((date1.equals( date2 )) || (date1.before( date2 )))\n</pre>\ncould become\n<pre>\n  if (date1.compareTo( date2 ) <= 0)\n</pre>\nand\n<pre>\n  if ((date1.before( date2 )) || (date1.after( date2 )))\n</pre>\ncould become\n<pre>\n  if (!date1.equals( date2 ))\n</pre>',0,NULL,'Performance - Method uses two date comparisons when one would do','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(534,'NAB_NEEDLESS_AUTOBOXING_VALUEOF','NAB_NEEDLESS_AUTOBOXING_VALUEOF','fb-contrib','<p>This method passes a wrapped primitive object to the same class\'s .valueOf method.\nSince wrapper classes are immutable, you can just use the original object, rather\nthan calling valueOf to create a new one. This code works because of an abuse of autoboxing.\n</p>',0,NULL,'Performance - Method passes primitive wrapper to Wrapper class valueOf method','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(535,'LO_INVALID_FORMATTING_ANCHOR','LO_INVALID_FORMATTING_ANCHOR','fb-contrib','This method attempts to use an SLF4J logger to log a parameterized expression using formatting anchors.\nHowever, slf4j uses simple non numbered anchors such as {}, rather than anchors with digits in them as the \ncode uses. Thus no parameter replacement will occur.',0,NULL,'Correctness - Method attempts to log using numbered formatting anchors','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(536,'SC_SUSPICIOUS_COMPARATOR_RETURN_VALUES','SC_SUSPICIOUS_COMPARATOR_RETURN_VALUES','fb-contrib','<p>This compareTo or compare method returns constant values for to represent less than,\nequals and greater than. However it does not return each type. Given that comparators\nare transitive, this seems incorrect.</p>',0,NULL,'Correctness - Comparator method doesn\'t seem to return all ordering values','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(537,'SPP_DOUBLE_APPENDED_LITERALS','SPP_DOUBLE_APPENDED_LITERALS','fb-contrib','This method appends two literal strings to a StringBuilder back to back. This can be done with just\none append call, and may avoid intermediate reallocations of the StringBuilders backing store.',0,NULL,'Performance - Method appends two literal strings back to back to a StringBuilder','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(538,'UMTP_UNBOUND_METHOD_TEMPLATE_PARAMETER','UMTP_UNBOUND_METHOD_TEMPLATE_PARAMETER','fb-contrib','<p>This method declares a method level template parameter that is not bound by any parameter of this\nmethod. Therefore the template parameter adds no validation or type safety and can be removed, as it\'s\njust confusing to the reader.',0,NULL,'Correctness - Method declares unbound method template parameter(s)','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(539,'UCPM_USE_CHARACTER_PARAMETERIZED_METHOD','UCPM_USE_CHARACTER_PARAMETERIZED_METHOD','fb-contrib','<p>This method passes a constant literal String of length 1 as a parameter to a method, that\nexposes a similar method that takes a character. It is simpler and more expedient to handle one\ncharacter, rather than pass a string.</p>',0,NULL,'Performance - Method passes constant String of length 1 to character overridden method','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(540,'LSC_LITERAL_STRING_COMPARISON','LSC_LITERAL_STRING_COMPARISON','fb-contrib','<p>This method calls the equals or compareTo methods on a String variable passing in a String literal.\nA NullPointerException may occur if the string variable is null. If instead the method was called on\nthe string literal, and the variable was passed as an argument, this exception could never happen.</p>',0,NULL,'Style - Method makes literal string comparisons passing the literal as an argument','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(541,'USBR_UNNECESSARY_STORE_BEFORE_RETURN','USBR_UNNECESSARY_STORE_BEFORE_RETURN','fb-contrib','<p>This method stores the return result in a local variable, and then immediately\nreturns the local variable. It would be simpler just to return the value that is\nassigned to the local variable, directly.\n</p>',0,NULL,'Style - Method stores return result in local before immediately returning it','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(542,'S508C_SET_COMP_COLOR','S508C_SET_COMP_COLOR','fb-contrib','<p>This method sets a Components explicitly foreground or background color which may\ncause difficulty with people with vision problems from using this application.\nColors should be allowed to be set from the operating system.</p>',0,NULL,'Correctness - Method explicitly sets the color of a Component','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(543,'CVAA_CONTRAVARIANT_ELEMENT_ASSIGNMENT','CVAA_CONTRAVARIANT_ELEMENT_ASSIGNMENT','fb-contrib','<p>This method contains a contravariant array element assignment. Since arrays are mutable \ndata structures, their use must be restricted to covariant or invariant usage</p>\n\n<pre>\nclass A {}\nclass B extends A {}\n\n B[] b = new B[2];\n A[] a = b;\n a[0] = new A(); // results in ArrayStoreException (Runtime)\n</pre>',0,NULL,'Correctness - Method performs a contravariant array element assignment','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(544,'DTEP_DEPRECATED_TYPESAFE_ENUM_PATTERN','DTEP_DEPRECATED_TYPESAFE_ENUM_PATTERN','fb-contrib','<p>This class appears to implement the old style type safe enum pattern that was used in place of\nreal enums. Since this class is compiled with java 1.5 or better, it would be simpler and more \neasy to understand if it was just switched over to an enum.</p>',0,NULL,'Style - Class appears to implement the old style type safe enum pattern','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(545,'CSBTS_COMMONS_STRING_BUILDER_TOSTRING','CSBTS_COMMONS_STRING_BUILDER_TOSTRING','fb-contrib','<p>This method returns the result of toString() on ToStringBuilder without an\nintermediate invocation of append()</p>',0,NULL,'Correctness - Method returns the result of invoking toString() without intermediate invocation of append() in ToStringBuilder','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(546,'LO_LOGGER_LOST_EXCEPTION_STACK_TRACE','LO_LOGGER_LOST_EXCEPTION_STACK_TRACE','fb-contrib','<p>This method passes an exception as the first argument to a logger method. The stack\ntrace is potentially lost due to the logger emitting the exception using toString(). It\nis better to construct a log message with sufficient context and pass the exception as\nthe second argument to capture the stack trace.</p>',0,NULL,'Correctness - Method incorrectly passes exception as first argument to logger method','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(547,'SNG_SUSPICIOUS_NULL_FIELD_GUARD','SNG_SUSPICIOUS_NULL_FIELD_GUARD','fb-contrib','<p>This method tests a field to make sure it\'s not null before executing a conditional block of\ncode. However in the conditional block it reassigns the field. It is likely that the guard\nshould have been a check to see if the field is null, not that the field was not null.</p>',0,NULL,'Correctness - Method tests a field for not null as guard and reassigns it','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(548,'CCNE_COMPARE_CLASS_EQUALS_NAME','CCNE_COMPARE_CLASS_EQUALS_NAME','fb-contrib','<p>In a JVM, Two classes are the same class (and consequently the same type) if\nthey are loaded by the same class loader, and they have the same fully\nqualified name [JVMSpec 1999].\n\nComparing class name ignores the class loader.\n</p>',0,NULL,'Correctness - Method compares class name instead of comparing class','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(549,'ISB_EMPTY_STRING_APPENDING','ISB_EMPTY_STRING_APPENDING','fb-contrib','<p>This method concatenates an empty string with a literal value, in order to convert\nthe literal value into a string. It is more efficient to use String.valueOf() to do the same\nthing as you do not incur the cost of creating a StringBuffer/Builder and calling methods on it\nto accomplish this.</p>',0,NULL,'Performance - Method concatenates an empty string to effect type conversion','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(550,'DWI_DELETING_WHILE_ITERATING','DWI_DELETING_WHILE_ITERATING','fb-contrib','<p>This method removes items from a collection using the remove method of the collection, while\nat the same time iterating across the collection. Doing this will invalidate the iterator, and further\nuse of it, will cause ConcurrentModificationExceptions to be thrown. To avoid this, the remove \nmethod of the iterator should be used.\n</p>',0,NULL,'Correctness - Method deletes collection element while iterating','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(551,'SG_SLUGGISH_GUI','SG_SLUGGISH_GUI','fb-contrib','<p>This method implements an awt or swing listener and performs time \nconsuming operations. Doing these operations in the gui thread will cause the\ninterface to appear sluggish and non-responsive to the user. Consider\nusing a separate thread to do the time consuming work so that the user\nhas a better experience.</p>',0,NULL,'Performance - Method performs time consuming operation in gui thread','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(552,'DWI_MODIFYING_WHILE_ITERATING','DWI_MODIFYING_WHILE_ITERATING','fb-contrib','<p>This method modifies the contents of a collection using the collection api methods, while\nat the same time iterating across the collection. Doing this will invalidate the iterator, and further\nuse of it, will cause ConcurrentModificationExceptions to be thrown.\n</p>',0,NULL,'Correctness - Method modifies collection element while iterating','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(553,'MDM_PROMISCUOUS_SERVERSOCKET','MDM_PROMISCUOUS_SERVERSOCKET','fb-contrib','<p>Do not use the <code>ServerSocket</code> constructor or <code>ServerSocketFactory.createServerSocket()</code> factory methods that accepts connections on any network interface. By default, an application that listens on a socket will listen for connection attempts on any network interface, which can be a security risk. Only the long form the <code>ServerSocket</code> constructor or <code>ServerSocketFactory.createServerSocket()</code> factory methods take a specific local address to define which network interface the socket should bind.</p>',0,NULL,'Correctness - Method creates promiscuous ServerSocket object','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(554,'SPP_USELESS_TERNARY','SPP_USELESS_TERNARY','fb-contrib','<p>This method tests the value of a boolean and using a ternary operator to return either true or false.\nThe ternary operator is completely unecessary, just use the original boolean value.</p>',0,NULL,'Performance - Method uses a ternary operator to cast a boolean to true or false','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(555,'SPP_NEGATIVE_BITSET_ITEM','SPP_NEGATIVE_BITSET_ITEM','fb-contrib','<p>This method passes a constant negative value as a bit position to a java.util.BitSet. The BitSet class\ndoesn\'t support negative values, and thus this method call will not work as expected.</p>',0,NULL,'Correctness - Method passes a negative number as a bit to a BitSet which isn\'t supported','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(556,'SPP_USE_GET0','SPP_USE_GET0','fb-contrib','This Method calls myList.iterator().next() on a List to get the first item. It is more performant \nto just use myList.get(0).',0,NULL,'Performance - Method uses iterator().next() on a List to get the first item','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(557,'CNC_COLLECTION_NAMING_CONFUSION','CNC_COLLECTION_NAMING_CONFUSION','fb-contrib','<p>This class defines a field or local collection variable with a name that contains a different type\nof collection in its name. An example woutd be a Set<User> called userList. This is confusing to the reader,\nand likely caused by a previous refactor of type, without changing the name.</p>',0,NULL,'Style - Collection Naming Confusion','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(558,'ITU_INAPPROPRIATE_TOSTRING_USE','ITU_INAPPROPRIATE_TOSTRING_USE','fb-contrib','<p>This method calls algorithmic operations on a String that was returned from a toString() method.\nAs these methods are for debugging/logging purposes, it shouldn\'t be the basis of core logic in your code.',0,NULL,'Correctness - Method performs algorithmic operations on the result of a toString() call','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(559,'CVAA_CONTRAVARIANT_ARRAY_ASSIGNMENT','CVAA_CONTRAVARIANT_ARRAY_ASSIGNMENT','fb-contrib','<p>This method contains a contravariant array assignment. Since arrays are mutable data structures, their use \nmust be restricted to covariant or invariant usage</p>\n\n<pre>\nclass A {}\nclass B extends A {}\n\n B[] b = new B[2];\n A[] a = b;\n</pre>',0,NULL,'Correctness - Method performs a contravariant array assignment','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(560,'NAB_NEEDLESS_BOXING_PARSE','NAB_NEEDLESS_BOXING_PARSE','fb-contrib','<p>This method passes a String to a wrapped primitive object\'s valueOf method, which in turn calls\nthe boxedValue() method to convert to a primitive. When it is desired to convert from a String\nto a primitive value, it is simpler to use the BoxedPrimitive.parseBoxedPrimitive(myString)\nmethod. </p>',0,NULL,'Performance - Method converts String to primitive using excessive boxing','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(561,'BAS_BLOATED_ASSIGNMENT_SCOPE','BAS_BLOATED_ASSIGNMENT_SCOPE','fb-contrib','<p><em>THIS DETECTOR IS HIGHLY EXPERIMENTAL AND IS LIKELY TO CREATE A LOT OF FUD</em>\nThis method assigns a value to a variable in an outer scope compared to where the variable is actually used. \nAssuming this evaluation does not have side effects, the assignment can be moved into the inner scope (if block)\nso that its execution time isn\'t taken up if the if guard is false. Care should be\ntaken however that the right hand side of the assignment does not contain side \neffects that are required to happen, or that changes are not made further down that\nwill effect the execution of the assignment when done later on.</p>',0,NULL,'Performance - Method assigns a variable in a larger scope then is needed','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(562,'SPP_STUTTERED_ASSIGNMENT','SPP_STUTTERED_ASSIGNMENT','fb-contrib','<p>This method assigns a value twice in a row in a stuttered way such as\n<code>a = a = 5;</code> This is most probably a cut and paste error where the duplicate\nassignment can be removed.</p>',0,NULL,'Correctness - Method assigns a value to a local twice in a row','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(563,'JAO_JUNIT_ASSERTION_ODDITIES_ACTUAL_CONSTANT','JAO_JUNIT_ASSERTION_ODDITIES_ACTUAL_CONSTANT','fb-contrib','<p>This method calls assert passing a constant value as the second of the two values. The assert\nmethod assumes that the expected value is the first parameter, and so it appears that the order\nof values has been swapped here.</p>',0,NULL,'Style - Method passes constant to second (actual) assertion parameter','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(564,'UAA_USE_ADD_ALL','UAA_USE_ADD_ALL','fb-contrib','<p>This method uses a simple for loop to copy the contents of a set, list, map key/value, array or other collection\nto another collection. It is simpler and more straight forward to just call the addAll method of the destination collection\npassing in the source collection. In the case that the source is an array, you can use Array.asList method to massage the array\ninto a collection</p>',0,NULL,'Style - Method uses simple loop to copy contents of one collection to another','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(565,'UNNC_UNNECESSARY_NEW_NULL_CHECK','UNNC_UNNECESSARY_NEW_NULL_CHECK','fb-contrib','<p>This method allocations an object with new, and then checks that the object is null\nor non null. As the new operator is guaranteed to either succeed or throw an exception,\nthis null check is unnecessary and can be removed.',0,NULL,'Correctness - Method checks the result of a new allocation','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(566,'PRMC_POSSIBLY_REDUNDANT_METHOD_CALLS','PRMC_POSSIBLY_REDUNDANT_METHOD_CALLS','fb-contrib','<p>This method makes two consecutive calls to the same method using the same constant\nparameters, on the same instance without any intervening changes to the objects. If this\nmethod does not make changes to the object, which it appears it doesn\'t, then making\ntwo calls is just a waste. These method calls could be combined by assigning the\nresult into a temporary, and using the temporary the second time.',0,NULL,'Performance - Method appears to call the same method on the same object redundantly','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(567,'SPP_USE_MATH_CONSTANT','SPP_USE_MATH_CONSTANT','fb-contrib','<p>This method defines its own version of <em>PI</em> or <em>e</em> and the value is not as precise as the\none defined in the constants Math.PI or Math.E. Use these constants instead.</p>',0,NULL,'Correctness - Method uses non standard math constant','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(568,'MDM_SETDEFAULTLOCALE','MDM_SETDEFAULTLOCALE','fb-contrib','<p>Do not use the <code>Locale.setDefault()</code> method to change the default locale. It changes the JVM\'s default locale for all threads and makes your applications unsafe to threads. It does not affect the host locale. Since changing the JVM\'s default locale may affect many different areas of functionality, this method should only be used if the caller is prepared to reinitialize locale-sensitive code running within the same Java Virtual Machine, such as the user interface.</p>',0,NULL,'MT Correctness - Method calls Locale.setDefault()','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(569,'SIL_SQL_IN_LOOP','SIL_SQL_IN_LOOP','fb-contrib','<p>This method executes sql queries inside of a loop. This pattern is often inefficient\nas the number of queries may mushroom in fencepost cases. It is probably more performant\nto loop over the input and collect the key data needed for the query for all items, and\nissue one query using an in clause, or similar construct, and then loop over this result\nset, and fetch all the data at once.</p>',0,NULL,'Performance - Method executes sql queries inside of loops','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(570,'SPP_INVALID_CALENDAR_COMPARE','SPP_INVALID_CALENDAR_COMPARE','fb-contrib','<p>This method passes a non calendar object to the java.util.Calendar.after or java.util.Calendar.before methods.\nEven though these methods take an Object as a parameter type, only Calendar type objects are supported, otherwise\nfalse is returned</p>',0,NULL,'Correctness - Method passes a non calendar object to Calendar.before or Calendar.after','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(571,'MAC_MANUAL_ARRAY_COPY','MAC_MANUAL_ARRAY_COPY','fb-contrib','<p>This method copies data from one array to another manually using a loop.\nIt is much better performing to use System.arraycopy as this method is native.</p>',0,NULL,'Performance - Method copies arrays manually','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(572,'DLC_DUBIOUS_LIST_COLLECTION','DLC_DUBIOUS_LIST_COLLECTION','fb-contrib','<p>This class defines a field based on java.util.List, but uses it to some extent like a Set. Since\nlookup type operations are performed using a linear search for Lists, the performance for large\nLists will be poor. Consider changing this fields implementation to a set based one. If order of\niteration is important to maintain insert order, perhaps consider a LinkedHashSet.</p>',0,NULL,'Performance - Class defines List based fields but uses them like Sets','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(573,'SPP_INVALID_BOOLEAN_NULL_CHECK','SPP_INVALID_BOOLEAN_NULL_CHECK','fb-contrib','<p>This method attempts to check for null by just refering to the variable name\nas would be done in C++. This ordinarily would be considered a compile error, except the\nvariable in question is a Boolean, which does an auto unbox to boolean.</p>\n<pre>\nif (b && b.booleanValue())\nshould be\nif ((b != null) && b.booleanValue())\n</pre>',0,NULL,'Correctness - Method uses invalid C++ style null check on Boolean','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(574,'CD_CIRCULAR_DEPENDENCY','CD_CIRCULAR_DEPENDENCY','fb-contrib','<p>\nThis class has a circular dependency with other classes. This makes building these classes\ndifficult, as each is dependent on the other to build correctly. Consider using interfaces\nto break the hard dependency.\n</p>',0,NULL,'Correctness - Circular Dependencies','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(575,'S508C_NO_SETSIZE','S508C_NO_SETSIZE','fb-contrib','<p>This class creates a window, and sizes the window using setSize. It is better\nto handle font size changes to use the pack method.\n</p>',0,NULL,'Correctness - Window sets size manually, and doesn\'t use pack','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(576,'MDM_THREAD_YIELD','MDM_THREAD_YIELD','fb-contrib','<p>Manual thread scheduling with <code>Thread.sleep()</code> or <code>Thread.yield()</code> has no guaranteed semantics and is often used to mask race conditions.</p>',0,NULL,'MT Correctness - Method attempts to manually schedule threads','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(577,'UJM_UNJITABLE_METHOD','UJM_UNJITABLE_METHOD','fb-contrib','<p>This method is longer than 8000 bytes. By default the JIT will not attempt to compile this method no matter\nhow hot it is, and so this method will always be interpreted. If performance is important, you should consider\nbreaking this method up in smaller chunks. (And probably a good idea for readability too!).',0,NULL,'Performance - Unjitable method','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(578,'ACEM_ABSTRACT_CLASS_EMPTY_METHODS','ACEM_ABSTRACT_CLASS_EMPTY_METHODS','fb-contrib','<p>This method is empty or merely throws an exception. Since the class it is defined in is \nabstract, it may be more correct to define this method as abstract instead, so that proper\nsubclass behavior is enforced.</p>',0,NULL,'Style - Empty method could be declared abstract','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(579,'ROOM_REFLECTION_ON_OBJECT_METHODS','ROOM_REFLECTION_ON_OBJECT_METHODS','fb-contrib','<p>This method uses reflection to call a method that is defined in java.lang.Object.\nAs these methods are always available, it is not necessary to call these methods with\nreflection.',0,NULL,'Correctness - Method uses reflection to call a method available on java.lang.Object','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(580,'PDP_POORLY_DEFINED_PARAMETER','PDP_POORLY_DEFINED_PARAMETER','fb-contrib','<p>This method defines parameters at a more abstract level than is actually needed to function correctly,\nas the code casts these parameters to more concrete types. Since this method is not derivable, you should \njust define the parameters with the type that is needed.',0,NULL,'Correctness - Method defines parameters more abstractly than needed to function properly','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(581,'AFBR_ABNORMAL_FINALLY_BLOCK_RETURN','AFBR_ABNORMAL_FINALLY_BLOCK_RETURN','fb-contrib','<p>This method returns or throws exceptions from a finally block. This will\nmask real program logic in the try block, and short-circuit normal method termination.\n</p>',0,NULL,'Correctness - Method has abnormal exit from finally block','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(582,'S508C_NON_ACCESSIBLE_JCOMPONENT','S508C_NON_ACCESSIBLE_JCOMPONENT','fb-contrib','<p>This class extends the JComponent gui control but does not implement the Accessibility interface.\nThis makes this control unable to be processed by screen readers, etc, for people with reading/vision\ndifficulties</p>',0,NULL,'Correctness - Class extends JComponent but does not implement Accessible interface','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(583,'UTA_USE_TO_ARRAY','UTA_USE_TO_ARRAY','fb-contrib','<p>This method manually loops over a collection, pulling each element out and storing\nit in an array to build an array from the collection. It is easier, and clearer to use\nthe built in collections method toArray. Given a collection \'mycollection\' of type T, use\nmycollection.toArray(new T[mycollection.size()]);',0,NULL,'Style - Method manually creates array from collection','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(584,'SCR_SLOPPY_CLASS_REFLECTION','SCR_SLOPPY_CLASS_REFLECTION','fb-contrib','<p>This method accesses the class object of a class that is already statically bound\nin this context, with Class.forName. Using Class.forName makes reflection more fragile\nin regards to code transformations such as obfuscation, and is unneeded here, since \nthe class in question is already \'linked\' to this class.</p>',0,NULL,'Style - Method accesses statically bound class with Class.forName','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(585,'SCA_SUSPICIOUS_CLONE_ALGORITHM','SCA_SUSPICIOUS_CLONE_ALGORITHM','fb-contrib','<p>The clone method stores a value to a member field of the source object. Normally, all \nchanges are made to the cloned object, and given that cloning is almost always considered\na read-only operation, this seems incorrect.</p>',0,NULL,'Correctness - Clone method stores a new value to member field of source object','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(586,'TBP_TRISTATE_BOOLEAN_PATTERN','TBP_TRISTATE_BOOLEAN_PATTERN','fb-contrib','<p>This method declares that it returns a Boolean value. However the code\ncan return a null value. As this is now three values that can be returned;\nBoolean.TRUE, Boolean.FALSE, null; you have changed what a Boolean means.\nIt would be clearer to just create a new Enum that has the three values\nyou want, and define that the method returns that type.</p>',0,NULL,'Style - Method returns null for Boolean type','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(587,'SGSU_SUSPICIOUS_GETTER_SETTER_USE','SGSU_SUSPICIOUS_GETTER_SETTER_USE','fb-contrib','<p>This method retrieves the property of a java bean, only to use it in the setter\nfor the same property of the same bean. This is usually a copy/paste typo.',0,NULL,'Correctness - Method uses same bean\'s getter value for setter','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(588,'SPP_NO_CHAR_SB_CTOR','SPP_NO_CHAR_SB_CTOR','fb-contrib','<p>This method constructs a StringBuffer or a StringBuilder using the constructor that takes an integer, but\nappears to pass a character instead. It is probable that the author assumed that character would be appended to the\nStringBuffer/Builder, but instead the integer value of the character is used as an initial size for the buffer.\n</p>',0,NULL,'Correctness - Method appears to pass character to StringBuffer or StringBuilder integer constructor','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(589,'JAO_JUNIT_ASSERTION_ODDITIES_USE_ASSERT_EQUALS','JAO_JUNIT_ASSERTION_ODDITIES_USE_ASSERT_EQUALS','fb-contrib','<p>This method evaluates a boolean expression and passes that to Assert.assertTrue. It is better \nto pass the two values that are being equated to the Assert.assertEquals method so that the\njunit failure method is more meaningful of the intended test.</p>',0,NULL,'Correctness - Method passes boolean expression to Assert.assertTrue','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(590,'SPP_USE_GETPROPERTY','SPP_USE_GETPROPERTY','fb-contrib','<table>\n    <tr><td>This method uses</td></tr>\n    <tr><td>String prop = System.getProperties().getProperty(\"foo\");</td></tr\n    <tr><td>instead of simply using</td></tr>\n    <tr><td>String prop = System.getProperty(\"foo\");</td></tr>\n  </table>',0,NULL,'Style - Method calls getProperties just to get one property, use getProperty instead','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(591,'MDM_BIGDECIMAL_EQUALS','MDM_BIGDECIMAL_EQUALS','fb-contrib','<p><code>equals()</code> being called to compare two <code>java.math.BigDecimal</code> numbers. This is normally a mistake, as two <code>BigDecimal</code> objects are only equal if they are equal in both value and scale, so that <i>2.0</i> is not equal to <i>2.00</i>. To compare <code>BigDecimal</code> objects for mathematical equality, use <code>compareTo()</code> instead.</p>',0,NULL,'Correctness - Method calls BigDecimal.equals()','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(592,'NOS_NON_OWNED_SYNCHRONIZATION','NOS_NON_OWNED_SYNCHRONIZATION','fb-contrib','<p>This method uses a synchronize block where the object that is being synchronized on,\nis not owned by this current instance. This means that other instances may use this same\nobject for synchronization for its own purposes causing synchronization confusion. It is \nalways cleaner and safer to only synchronize on private fields of this class. Note that \'this\'\nis not owned by the current instance, but is owned by whomever assigns it to a field of its \nclass. Synchronizing on \'this\' is also not a good idea.</p>',0,NULL,'Style - Class uses non owned variables to synchronize on','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(593,'SPP_SERIALVER_SHOULD_BE_PRIVATE','SPP_SERIALVER_SHOULD_BE_PRIVATE','fb-contrib','This class defines a static field \'serialVersionUID\' to define the serialization\nversion for this class. This field is marked as non private. As the serialVersionUID only\ncontrols the current class, and doesn\'t effect any derived classes, defining it as non\nprivate is confusing. It is suggested you change this variable to be private.',0,NULL,'Style - Class defines a serialVersionUID as non private','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(594,'STS_SPURIOUS_THREAD_STATES','STS_SPURIOUS_THREAD_STATES','fb-contrib','<p>This method invokes the methods wait, notify or notifyAll on a Thread instance.\nDoing so will confuse the internal thread state behaviour causing spurious thread\nwakeups/sleeps because the internal mechanism also uses the thread instance for it\'s \nnotifications.\n</p>',0,NULL,'MT Correctness - Method calls wait, notify or notifyAll on a Thread instance','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(595,'SPP_EQUALS_ON_ENUM','SPP_EQUALS_ON_ENUM','fb-contrib','<p>This method calls the equals(Object) method on an enum instance. Since enums values are singletons,\nyou can use == to safely compare two enum values. In fact, the implementation for Enum.equals does just\nthat.</p>',0,NULL,'Correctness - Method calls equals on an enum instance','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(596,'SCI_SYNCHRONIZED_COLLECTION_ITERATORS','SCI_SYNCHRONIZED_COLLECTION_ITERATORS','fb-contrib','<p>This method uses a synchronized collection, built from Collections.synchronizedXXXX, but accesses it\nthrough an iterator. Since an iterator is by definition, multithreaded unsafe, this is a conflict in\nconcept. When using iterators, you should do the synchronization manually.</p>',0,NULL,'Correctness - Method creates iterators on synchronized collections','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(597,'SPP_TEMPORARY_TRIM','SPP_TEMPORARY_TRIM','fb-contrib','This method calls trim() on a String without assigning the new string to another variable.\nIt then calls length() or equals on this trimmed string. If trimming the string was important\nfor determining it\'s length of it\'s equality, it should be trimmed when you actually go to use it.\nIt would make more sense to first trim the String, store the trimmed value in a variable, and then\ncontinue to test and use that trimmed string.',0,NULL,'Style - Method trims a String temporarily','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(598,'NAB_NEEDLESS_BOXING_VALUEOF','NAB_NEEDLESS_BOXING_VALUEOF','fb-contrib','<p>This method passes a String to a wrapped primitive object\'s parse method, which in turn calls\nthe valueOf() method to convert to a boxed primitive. When it is desired to convert from a String\nto a boxed primitive object, it is simpler to use the BoxedPrimitive.valueOf(myString)\nmethod. </p>',0,NULL,'Performance - Method converts String to boxed primitive using excessive boxing','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(599,'MUC_MODIFYING_UNMODIFIABLE_COLLECTION','MUC_MODIFYING_UNMODIFIABLE_COLLECTION','fb-contrib','<p>This method attempts to modify a collection that it got from a source that could potentially have created an\nimmutable collection, thru Arrays.asList, Collections.unmodifiableXXX, or one of guava\'s methods. Doing so will cause\nan exception, as these collections are not mutable.',0,NULL,'Correctness - Modifying Unmodifiable Collection','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(600,'JAO_JUNIT_ASSERTION_ODDITIES_BOOLEAN_ASSERT','JAO_JUNIT_ASSERTION_ODDITIES_BOOLEAN_ASSERT','fb-contrib','<p>This method asserts that a value is equal to true or false. It is simpler to just \nuse assertTrue, or assertFalse, instead.</p>',0,NULL,'Style - Method asserts that a value is true or false','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(601,'FCBL_FIELD_COULD_BE_LOCAL','FCBL_FIELD_COULD_BE_LOCAL','fb-contrib','<p>This class defines fields that are used in a locals only fashion, \nspecifically private fields or protected fields in final classes that are accessed \nfirst in each method with a store vs. a load. This field could be replaced by one\nor more local variables.</p>',0,NULL,'Correctness - Class defines fields that are used only as locals','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(602,'SCSS_SUSPICIOUS_CLUSTERED_SESSION_SUPPORT','SCSS_SUSPICIOUS_CLUSTERED_SESSION_SUPPORT','fb-contrib','<p>This method fetches a complex object from an HttpSession object, modifies this object, but does\nnot call setAttribute, to inform the application server that this attribute has been changed. This will\ncause this attribute not to be updated in other servers in a clustered environment, as only changes marked\nby a call to setAttribute are replicated.</p>',0,NULL,'Correctness - Method modifies http session attribute without calling setAttribute','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(603,'MDM_THREAD_FAIRNESS','MDM_THREAD_FAIRNESS','fb-contrib','<p>Calling <code>Lock.tryLock()</code> or <code>ReentrantLock.tryLock()</code> without a timeout does not honor the lock\'s fairness setting. If you want to honor the fairness setting for this lock, then use <code>tryLock(0, TimeUnit.SECONDS)</code> which is almost equivalent (it also detects interruption).</p>',0,NULL,'MT Correctness - Method ignores Lock\'s fairness settings by calling tryLock()','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(604,'NCMU_NON_COLLECTION_METHOD_USE','NCMU_NON_COLLECTION_METHOD_USE','fb-contrib','<p>This method makes calls to collection classes where the method is not defined by the Collections\ninterface, and an equivalent method exists in the interface. By using the new methods,\nyou can define this object by the Collections interface and allow better decoupling.</p>',0,NULL,'Style - Method uses old non collections interface methods','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(605,'ISB_INEFFICIENT_STRING_BUFFERING','ISB_INEFFICIENT_STRING_BUFFERING','fb-contrib','<p>This method uses StringBuffer or StringBuilder\'s append method to concatenate strings. However, it passes the result\nof doing a simple String concatenation to one of these append calls, thus removing any performance gains\nof using the StringBuffer or StringBuilder class.</p>',0,NULL,'Performance - Method passes simple concatenating string in StringBuffer or StringBuilder append','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(606,'PME_POOR_MANS_ENUM','PME_POOR_MANS_ENUM','fb-contrib','<p>This field, although defined as a simple variable (int, String, etc) only has a set of constant values\nassigned to it. Thus it appears to be used like an enum value, and should probably be defined as such.\n</p>',0,NULL,'Style - Poor Mans Enum','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(607,'MDM_RANDOM_SEED','MDM_RANDOM_SEED','fb-contrib','<p><code>Random()</code> constructor without a seed is insecure because it defaults to easily guessable seed: <code>System.currentTimeMillis()</code>. Initialize seed with <code>Random(SecureRandom.getInstance().generateSeed())</code> or use <code>SecureRandom</code> instead.</p>',0,NULL,'Correctness - Method creates insecure Random object','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(608,'NSE_NON_SYMMETRIC_EQUALS','NSE_NON_SYMMETRIC_EQUALS','fb-contrib','<p>This class implements an equals method that compares this object against another type of object.\nThis is almost always a bad thing to do, but if it is to be done, you must make sure that the basic\nsymmetry rule of equivalence is maintained, that being if a equals b, then b equals a. It does not\nappear that the class that is being compared to this class knows about this class, and doesn\'t compare itself\nto this.</p>',0,NULL,'Correctness - Equals method compares this object against other types in a non symmetric way','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(609,'UEC_USE_ENUM_COLLECTIONS','UEC_USE_ENUM_COLLECTIONS','fb-contrib','<p>This class uses an ordinary set or map collection and uses an enum class as the key type.\nIt is better performant to use the jdk 1.5 EnumSet or EnumMap classes.</p>',0,NULL,'Performance - Class uses an ordinary set or map with an enum class as the key','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(610,'STB_STACKED_TRY_BLOCKS','STB_STACKED_TRY_BLOCKS','fb-contrib','<P>This method declares two try catch blocks one after another, where each\ncatch block catches the same type of exception. They also throw uniformly the\nsame type of exception. These two catch blocks can be combined into one to\nsimplify the method.</p>',0,NULL,'Style - Method stacks similar try/catch blocks','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(611,'LEST_LOST_EXCEPTION_STACK_TRACE','LEST_LOST_EXCEPTION_STACK_TRACE','fb-contrib','<p>This method catches an exception, and throws a different exception, without incorporating the\noriginal exception. Doing so hides the original source of the exception making debugging and fixing\nthese problems difficult. It is better to use the constructor of this new exception that takes an\noriginal exception so that this detail can be passed along to the user.</p>',0,NULL,'Correctness - Method throws alternative exception from catch block without history','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(612,'MDM_INETADDRESS_GETLOCALHOST','MDM_INETADDRESS_GETLOCALHOST','fb-contrib','<p>Do not call <code>InetAddress.getLocalHost()</code> on multihomed servers. On a multihomed server, <code>InetAddress.getLocalHost()</code> simply returns the IP address associated with the server\'s internal hostname. This could be any of the network interfaces, which could expose the machine to security risks. Server applications that need to listen on sockets should add configurable properties to define which network interfaces the server should bind.</p>',0,NULL,'Correctness - Method calls InetAddress.getLocalHost()','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(613,'SPP_USE_STRINGBUILDER_LENGTH','SPP_USE_STRINGBUILDER_LENGTH','fb-contrib','<p>This method calls the toString method on a StringBuffer or StringBuilder only to call length() on the resulting\nstring. It is faster, and less memory intensive to just call the length method directly on the StringBuffer or StringBuilder\nitself.</p>',0,NULL,'Performance - Method converts StringBuffer or Builder to String just to get it\'s length','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(614,'S508C_NON_TRANSLATABLE_STRING','S508C_NON_TRANSLATABLE_STRING','fb-contrib','<p>This method creates a component and passes a string literal to the title or label\nof the component. As this string will be shown to users, it should be internationalizable\nthrough the use of a resource bundle.</p>',0,NULL,'Correctness - Method passes constant string to title/label of component','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(615,'MDM_THREAD_PRIORITIES','MDM_THREAD_PRIORITIES','fb-contrib','<p>Getting or setting thread priorities is not portable and could cause or mask race conditions.</p>',0,NULL,'MT Correctness - Method uses suspicious thread priorities','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(616,'SPP_USE_ISEMPTY','SPP_USE_ISEMPTY','fb-contrib','<p>This method calls the size() method on a collection and compares the result to zero to see if the collection\nis empty. For better code clarity, it is better to just use col.isEmpty() or !col.isEmpty()</p>',0,NULL,'Style - Method checks the size of a collection against zero rather than using isEmpty()','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(617,'ITC_INHERITANCE_TYPE_CHECKING','ITC_INHERITANCE_TYPE_CHECKING','fb-contrib','<p>This method uses the instanceof operator in a series of if/else statements to\ndifferentiate blocks of code based on type. If these types are related by inheritance,\nit is cleaner to just define a method in the base class, and use overridden methods\nin these classes.</p>',0,NULL,'Style - Method uses instanceof on multiple types to arbitrate logic','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(618,'SPP_USE_CONTAINSKEY','SPP_USE_CONTAINSKEY','fb-contrib','<p>This method calls mySet.keySet().contains(\"foo\") when mySet.containsKey(\"foo\") is simpler</p>',0,NULL,'Style - Method calls keySet() just to call contains, use containsKey instead','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(619,'WEM_WEAK_EXCEPTION_MESSAGING','WEM_WEAK_EXCEPTION_MESSAGING','fb-contrib','<p>This method creates and throws an exception using a static string as the exceptions message.\nWithout any specific context of this particular exception invocation, such as the value of parameters, \nkey member variables, or local variables, it may be difficult to infer how this exception occurred. Consider\nadding context to the exception message.</p>',0,NULL,'Style - Method throws exception with static message string','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(620,'SWCO_SUSPICIOUS_WAIT_ON_CONCURRENT_OBJECT','SWCO_SUSPICIOUS_WAIT_ON_CONCURRENT_OBJECT','fb-contrib','<p>This method calls wait() on a on mutex defined in the java.util.concurrent package.\nThese classes, define await, instead of wait, and it is most likely that await\nwas intended.</p>',0,NULL,'Correctness - Method calls wait when await was probably intended','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(621,'MDM_LOCK_ISLOCKED','MDM_LOCK_ISLOCKED','fb-contrib','<p>Calling <code>ReentrantLock.isLocked()</code> or <code>ReentrantLock.isHeldByCurrentThread()</code> might indicate race conditions or incorrect locking. These methods are designed for use in debug code or monitoring of the system state, not for synchronization control.</p>',0,NULL,'MT Correctness - Method tests if a lock is locked','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(622,'NFF_NON_FUNCTIONAL_FIELD','NFF_NON_FUNCTIONAL_FIELD','fb-contrib','<p>This serializable class defines a field as both transient and final. As transient fields\nare not serialized across the stream, it is required that some piece of code reinitialize that field\nwhen it is deserialized. But since constructors aren\'t called when deserialization, the field is not initialized. \nAnd since the field is final, no other method can initialize it as well.</p>',0,NULL,'Correctness - Serializable class defines a final transient field','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(623,'BRPI_BACKPORT_REUSE_PUBLIC_IDENTIFIERS','BRPI_BACKPORT_REUSE_PUBLIC_IDENTIFIERS','fb-contrib','<p>This class uses Backport Utils concurrent classes. Updated/Efficient version of these\nclasses are available in versions of the JDK 5.0 and higher, and these\nclasses should only be used if you are targeting JDK 1.4 and lower.\n</p>',0,NULL,'Performance - Method uses backport concurrency utils','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(624,'S508C_APPENDED_STRING','S508C_APPENDED_STRING','fb-contrib','<p>This method creates a component and passes a string that was build up from a number of\nstrings through appending multiple strings together. As foreign languages may order phrases\ndifferently, this will make translations difficult.</p>',0,NULL,'Correctness - Method passes appended string to title/label of component','READY','java','2015-04-06 11:18:26','2015-04-06 11:18:26',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(625,'S138','S138','squid','<p>\nA method that grows too large tends to aggregate too many responsibilities.\nSuch methods inevitably become harder to understand and therefore harder to maintain.\n</p>\n\n<p>\nAbove a specific threshold, it is strongly advised to refactor into smaller methods which focus on well-defined tasks.\nThose smaller methods will not only be easier to understand, but also probably easier to test.\n</p>',2,NULL,'Methods should not have too many lines','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,16,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'1h',NULL,NULL,'brain-overload',0,'HTML'),(626,'S1160','S1160','squid','<p>\nUsing checked exceptions forces method callers to deal with errors, either by propagating them or by handling them.\nThis makes those exceptions fully part of the API of the method.\n</p>\n\n<p>\nTo keep the complexity for callers reasonable, methods should not throw more than one kind of checked exception.\n</p>\n\n<p>The following code:</p>\n\n<pre>\npublic void delete() throws IOException, SQLException {      // Non-Compliant\n  /* ... */\n}\n</pre>\n\n<p>should be refactored into:</p>\n\n<pre>\npublic void delete() throws SomeApplicationLevelException {  // Compliant\n  /* ... */\n}\n</pre>\n\nOverriding methods are not checked by this rule and are allowed to throw several checked exceptions.',2,NULL,'Public methods should throw at most one checked exception','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,51,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'20min',NULL,NULL,'error-handling',0,'HTML'),(627,'S135','S135','squid','<p>Restricting the number of <code>break</code> and <code>continue</code> statements in a loop is done in the interest of good structured programming.</p>\n\n<p>\nOne <code>break</code> and <code>continue</code> statement is acceptable in a loop, since it facilitates optimal coding. If there is more than one, the code should be refactored to increase readability.\n</p>\n\n<p>The following code:</p>\n\n<h2>Noncompliant Code Example</h2>\n\n<pre>\nfor (int i = 1; i <= 10; i++) {     // Noncompliant - 2 continue - one might be tempted to add some logic in between\n  if (i % 2 == 0) {\n    continue;\n  }\n\n  if (i % 3 == 0) {\n    continue;\n  }\n\n  System.out.println(\"i = \" + i);\n}\n</pre>',2,NULL,'Loops should not contain more than a single \"break\" or \"continue\" statement','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,16,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'30min',NULL,NULL,'brain-overload',0,'HTML'),(628,'LowerCaseLongSuffixCheck','LowerCaseLongSuffixCheck','squid','<p>\nThe long suffix should always be written in upper case, i.e. \'L\', as the lower case \'l\' can easily be confused with the digit one \'1\'.\n</p>\n\n<p>\nThe following code:\n</p>\n\n<pre>\nlong n = 10l;  // Non-Compliant - easily confused with one zero one\n</pre>\n\n<p>\nshould be refactored into:\n</p>\n\n<pre>\nlong n = 10L;  // Compliant\n</pre>',2,NULL,'Long suffix \"L\" should be upper case','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,15,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'10min',NULL,NULL,'convention',0,'HTML'),(629,'MissingDeprecatedCheck','MissingDeprecatedCheck','squid','<p>Deprecation should be marked with both the <code>@Deprecated</code> annotation and @deprecated Javadoc tag. The annotation enables tools such as IDEs to warn about referencing deprecated elements, and the tag can be used to explain when it was deprecated, why, and how references should be refactored.</p>\n\n<p>The following code illustrates this rule:</p>\n\n<h2>Noncompliant Code Sample</h2>\n<pre>\nclass MyClass {\n\n@Deprecated\npublic void foo1() {\n}\n\n/**\n* @deprecated\n*/\npublic void foo2() {    // Non-Compliant\n}\n\n}\n</pre>\n\n<h2>Compliant Solution</h2>\n<pre>\nclass MyClass {\n\n/**\n* @deprecated (when, why, refactoring advice...)\n*/\n@Deprecated\npublic void foo1() {\n}\n\n/**\n* @deprecated (when, why, refactoring advice...)\n*/\n@Deprecated\npublic void foo2() {    // Non-Compliant\n}\n\n}\n</pre>\n\n<h2>Exceptions</h2>\n<p>The members and methods of a deprecated class or interface are ignored by this rule. The classes and interfaces themselves are still subject to it.</p>\n\n<pre>\n/**\n* @deprecated (when, why, &etc...)\n*/\n@Deprecated\nclass Qix  {\n\npublic void foo() {} // Compliant; class is deprecated\n\n}\n\n/**\n* @deprecated (when, why, &etc...)\n*/\n@Deprecated\ninterface Plop {\n\nvoid bar();\n\n}\n</pre>',2,NULL,'Deprecated elements should have both the annotation and the Javadoc tag','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,16,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'10min',NULL,NULL,NULL,0,'HTML'),(630,'S1206','S1206','squid','<p>According to the Java Language Specification, there is a contract between <code>equals(Object)</code> and <code>hashCode()</code>:</p>\n\n<blockquote>\nIf two objects are equal according to the <code>equals(Object)</code> method, then calling the <code>hashCode</code> method on each of the two objects must produce the same integer result.\nIt is not required that if two objects are unequal according to the <code>equals(java.lang.Object)</code> method, then calling the <code>hashCode</code> method on each of the two objects must produce distinct integer results.\nHowever, the programmer should be aware that producing distinct integer results for unequal objects may improve the performance of hashtables.\n</blockquote>\n\n<p>In order to comply with this contract, those methods should be either both inherited, or both overridden.</p>\n\n<h2>Noncompliant Code Example</h2>\n\n<pre>\nclass MyClass {    // Non-Compliant - should also override \"hashCode()\"\n\n  @Override\n  public boolean equals(Object obj) {\n    /* ... */\n  }\n\n}\n</pre>\n\n<h2>Compliant Solution</h2>\n\n<pre>\nclass MyClass {    // Compliant\n\n  @Override\n  public boolean equals(Object obj) {\n    /* ... */\n  }\n\n  @Override\n  public int hashCode() {\n    /* ... */\n  }\n\n}\n</pre>',4,NULL,'\"equals(Object obj)\" and \"hashCode()\" should be overridden in pairs','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,38,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'30min',NULL,NULL,'bug',0,'HTML'),(631,'S1602','S1602','squid','<p>There are two ways to write lambdas that contain single statement, but one is definitely more compact and readable than the other.</p>\n<h2>Noncompliant Code Example</h2>\n\n<pre>\n x -> {System.out.println(x+1);}\n(a, b) -> { return a + b; }\n</pre>\n\n<h2>Compliant Solution</h2>\n\n<pre>\n x -> System.out.println(x+1)\n(a, b) -> a + b\n</pre>',2,NULL,'Lamdbas containing only one statement should not nest this statement in a block','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,15,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'5min',NULL,NULL,'java8',0,'HTML'),(632,'S1604','S1604','squid','<p>Before Java 8, the only way to partially support closures in Java was by using anonymous inner classes. But the syntax of anonymous classes may seem unwieldy and unclear.</p>\n\n<p>With Java 8, most uses of anonymous inner classes should be replaced by lambdas to highly increase the readability of the source code.</p>\n\n<h2>Noncompliant Code Example</h2>\n<pre>\nmyCollection.map(new Mapper<String,String>() {\n  public String map(String input) {\n    return new StringBuilder(input).reverse().toString();\n  }\n});\n</pre>\n\n<h2>Compliant Solution</h2>\n<pre>\nmyCollection.map(element -> new StringBuilder(element).reverse().toString());\n</pre>',2,NULL,'Anonymous inner classes containing only one method should become lambdas','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,15,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'5min',NULL,NULL,'java8',0,'HTML'),(633,'LeftCurlyBraceEndLineCheck','LeftCurlyBraceEndLineCheck','squid','<p>\nSharing some coding conventions is a key point to make it possible for a team to efficiently collaborate.\nThis rule make it mandatory to place left curly braces at the end of lines of code.\n</p>\n\n<p>\nThe following code snippet illustrates this rule:\n</p>\n\n<pre>\npublic void myMethod() {              // Compliant\n  if(something)\n  {                                   // Non-Compliant\n    executeTask();\n  } else {                            // Compliant\n    doSomethingElse();\n  }\n  if( param1 && param2 && param3\n    && something3 && something4)\n  {                                   // Non-Compliant\n    executeAnotherTask();\n  }\n}\n</pre>',2,NULL,'Left curly braces should be located at the end of lines of code','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,15,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'1min',NULL,NULL,'convention',0,'HTML'),(634,'S1163','S1163','squid','<p>\nThrowing an exception from within a finally block will mask any exception which was previously thrown in the <code>try</code> or <code>catch</code> block.\nThe masked\'s exception message and stack trace will be lost.\n</p>\n\n<p>The following code:</p>\n\n<pre>\ntry {\n  /* some work which end up throwing an exception */\n  throw new IllegalArgumentException();\n} finally {\n  /* clean up */\n  throw new RuntimeException();                          // Non-Compliant - will mask the IllegalArgumentException\n}\n</pre>\n\n<p>should be refactored into:</p>\n\n<pre>\ntry {\n  /* some work which end up throwing an exception */\n  throw new IllegalArgumentException();\n} finally {\n  /* clean up */                                         // Compliant\n}\n</pre>',2,NULL,'Exceptions should not be thrown in finally blocks','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,40,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'20min',NULL,NULL,NULL,0,'HTML'),(635,'IndentationCheck','IndentationCheck','squid','<p>\nProper indentation is a simple and effective way to improve the code\'s readability.\nConsistent indentation among developers also reduces the differences that are committed to source control systems, making code reviews easier.\n</p>\n\n<p>The following code illustrates this rule with an indentation level of 2:</p>\n\n<pre>\nclass Foo {\n  public int a; // Compliant\npublic int b;   // Non-Compliant\n}\n</pre>',2,NULL,'Source code should be correctly indented','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,15,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'1min',NULL,NULL,'convention',0,'HTML'),(636,'S1165','S1165','squid','<p>\nExceptions are meant to represent the application\'s state at which an error occurred.\n</p>\n\n<p>Making all fields final ensures that this state:</p>\n\n<ul>\n  <li>Will be fully defined at the same time the exception is instantiated.</li>\n  <li>Won\'t be updated or corrupted by some bogus error handler.</li>\n</ul>\n\n<p>This will enable developers to quickly understand what went wrong.</p>\n\n<p>The following code:</p>\n\n<pre>\npublic class MyException extends Exception {\n\n  private int status;                               // Non-Compliant\n\n  public MyException(String message) {\n    super(message);\n  }\n\n  public int getStatus() {\n    return status;\n  }\n\n  public void setStatus(int status) {\n    this.status = status;\n  }\n\n}\n</pre>\n\n<p>should be refactored into:</p>\n\n<pre>\npublic class MyException extends Exception {\n\n  private final int status;                         // Compliant\n\n  public MyException(String message, int status) {\n    super(message);\n    this.status = status;\n  }\n\n  public int getStatus() {\n    return status;\n  }\n\n}\n</pre>',2,NULL,'Exception classes should be immutable','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,40,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'30min',NULL,NULL,'error-handling',0,'HTML'),(637,'S1166','S1166','squid','<p>\nWhen handling a caught exception, two mandatory informations should be logged:\n</p>\n\n<ul>\n  <li>Some context to ease the reproduction of the issue.</li>\n  <li>The original\'s exception, for its message and stack trace.</lu>\n</ul>\n\n<h2>Noncompliant Code Example</h2>\n\n<pre>\n // Noncompliant - exception is lost\ntry { /* ... */ } catch (Exception e) { LOGGER.info(\"context\"); }\n\n// Noncompliant - context is required\ntry { /* ... */ } catch (Exception e) { LOGGER.info(e); }\n\n// Noncompliant - exception is lost (only message is preserved)\ntry { /* ... */ } catch (Exception e) { LOGGER.info(e.getMessage()); }\n\n// Noncompliant - exception is lost\ntry { /* ... */ } catch (Exception e) { throw new RuntimeException(\"context\"); }\n</pre>\n\n<h2>Compliant Solution</h2>\n\n<pre>\ntry { /* ... */ } catch (Exception e) { LOGGER.info(\"context\", e); }\n\ntry { /* ... */ } catch (Exception e) { throw new RuntimeException(\"context\", e); }\n</pre>\n\n<h2>Exceptions</h2>\n\n<p>It is allowed to let the exception propagate.</p>\n\n<pre>\ntry {\n  /* ... */\n} catch (RuntimeException e) {\n  doSomething();\n  throw e;\n} catch (Exception e) {\n  // Conversion into unchecked exception is also allowed\n  throw new RuntimeException(e);\n}\n</pre>\n\n<p>\n<code>InterruptedException</code>, <code>NumberFormatException</code>, <code>ParseException</code> and <code>MalformedURLException</code> exceptions are arguably used to indicate nonexceptional outcomes.\nAs they are part of Java, developers have no choice but to deal with them. This rule does not verify that those particular exceptions are correctly handled.\n</p>\n\n<pre>\nint myInteger;\ntry {\n  myInteger = Integer.parseInt(myString);\n} catch (NumberFormatException e) {\n  // It is perfectly acceptable to not handle \"e\" here\n  myInteger = 0;\n}\n</pre>',2,NULL,'Exception handlers should preserve the original exception','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,40,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'10min',NULL,NULL,'error-handling',0,'HTML'),(638,'S1200','S1200','squid','<p>\nAccording to the Single Responsibility Principle, introduced by Robert C. Martin in his book \"Principles of Object Oriented Design\", a class should have only one responsibility:\n</p>\n\n<blockquote>\nIf a class has more than one responsibility, then the responsibilities become coupled.\nChanges to one responsibility may impair or inhibit the class’ ability to meet the others.\nThis kind of coupling leads to fragile designs that break in unexpected ways when changed.\n</blockquote>\n\n<p>\nClasses which rely on many other classes tend to aggregate too many responsibilities and should be split into several smaller ones.\nNested classes dependencies are not counted as dependencies of the outer class.\n</p>\n\n<h2>Noncompliant Code Example</h2>\n\n<p>In case the threshold is set to 5</p>\n<pre>\nclass Foo {                        // Noncompliant - Foo depends on too many classes: T1, T2, T3, T4, T5, T6 and T7\n  T1 a1;                           // Foo is coupled to T1\n  T2 a2;                           // Foo is coupled to T2\n  T3 a3;                           // Foo is coupled to T3\n\n  public T4 compute(T5 a, T6 b) {  // Foo is coupled to T4, T5 and T6\n    T7 result = a.getResult(b);    // Foo is coupled to T7\n    return result;\n  }\n\n  public static class Bar {        // Compliant - Bar depends on 2 classes: T8 and T9\n    T8 a8;\n    T9 a9;\n  }\n}\n</pre>',2,NULL,'Classes should not be coupled to too many other classes (Single Responsibility Principle)','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,33,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'2h',NULL,NULL,'brain-overload',0,'HTML'),(639,'S1168','S1168','squid','<p>\nReturning <code>null</code> instead of an actual array or collection forces callers of the method to explicitly test for nullity, making them more complex and less readable.\nMoreover, in many cases, <code>null</code> is used as a synonym for empty.\n</p>\n\n<p>The following code:</p>\n\n<pre>\npublic static Result[] getResults() {\n  return null;                             // Non-Compliant\n}\n\npublic static void main(String[] args) {\n  Result[] results = getResults();\n\n  if (results != null) {                   // Nullity test required to prevent NPE\n    for (Result result: results) {\n      /* ... */\n    }\n  }\n}\n</pre>\n\n<p>should be refactored into:</p>\n\n<pre>\npublic static Result[] getResults() {\n  return new Result[0];                    // Compliant\n}\n\npublic static void main(String[] args) {\n  for (Result result: getResults()) {\n    /* ... */\n  }\n}\n</pre>\n\n<p>This rule also applies to collections:</p>\n\n<pre>\npublic static List&lt;Result&gt; getResults() {\n  return null;                             // Non-Compliant\n}\n</pre>\n\n<p>should be refactored into:</p>\n\n<pre>\npublic static List&lt;Result&gt; getResults() {\n  return Collections.emptyList();           // Compliant\n}\n</pre>',2,NULL,'Empty arrays and collections should be returned instead of null','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,38,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'1h',NULL,NULL,NULL,0,'HTML'),(640,'S1201','S1201','squid','<p>\n\"equals\" as a method name should be exclusively used to override <code>Object.equals(Object)</code> to prevent any confusion.\n</p>\n\n<p>\nIt is tempting to overload the method to take a specific class instead of <code>Object</code> as parameter, to save class comparison check.\nHowever, this will not work as expected.\n</p>\n\n<p>For example:</p>\n\n<pre>\nclass MyClass {\n  private int foo = 1;\n\n  public boolean equals(MyClass o) {                    // Non-Compliant - \"equals\" method which does not override Object.equals(Object)\n    return o != null && o.foo == this.foo;\n  }\n\n  public static void main(String[] args) {\n    MyClass o1 = new MyClass();\n    Object o2 = new MyClass();\n    System.out.println(o1.equals(o2));                  // Will display \"false\" because \"o2\" is of type \"Object\" and not \"MyClass\"\n  }\n}\n</pre>\n\n<p>should be refactored into:</p>\n\n<pre>\nclass MyClass {\n  private int foo = 1;\n\n  @Override\n  public boolean equals(Object o) {                     // Compliant - overrides Object.equals(Object)\n    if (o == null || !(o instanceof MyClass)) {\n      return false;\n    }\n\n    MyClass other = (MyClass)o;\n    return this.foo == other.foo;\n  }\n\n  /* ... */\n}\n</pre>',3,NULL,'Methods named \"equals\" should override Object.equals(Object)','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,38,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'30min',NULL,NULL,'pitfall',0,'HTML'),(641,'S1444','S1444','squid','<p>There is no good reason to declare a field \"public\" and \"static\" without also declaring it \"final\". Most of the time this is a kludge to share a state among several objects. But with this approach, any object can do whatever it wants with the shared state, such as setting it to <code>null</code>.</p>\n\n<h2>Noncompliant Code Example</h2>\n<pre>\npublic class Greeter {\npublic static var foo:Foo = new Foo(...);\n...\n}\n</pre>\n\n<h2>Compliant Solution</h2>\n<pre>\npublic class Greeter {\npublic static const FOO:Foo = new Foo(...);\n...\n}\n</pre>',2,NULL,'\"public static\" fields should always be constant','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,39,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'20min',NULL,NULL,NULL,0,'HTML'),(642,'StringEqualityComparisonCheck','StringEqualityComparisonCheck','squid','<p>\nString literals, just like any other <code>Object</code>, should be compared using the <code>equals()</code> method.\nUsing <code>==</code> and <code>!=</code> does not work in general.\n</p>\n\n<p>The following code:</p>\n\n<pre>\nif (variable == \"foo\") { /* ... */ }         // Non-Compliant\nif (variable != \"foo\") { /* ... */ }         // Non-Compliant\n</pre>\n\n<p>should be refactored into:</p>\n\n<pre>\nif (\"foo\".equals(variable)) { /* ... */ }    // Compliant\nif (!\"foo\".equals(variable)) { /* ... */ }   // Compliant\n</pre>\n\n<p>\n  This rule is deprecated, use {rule:squid:S1698} instead.\n</p>',3,NULL,'Strings should be compared using equals()','DEPRECATED','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,42,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'5min',NULL,NULL,'bug',0,'HTML'),(643,'S00101','S00101','squid','<p>\nSharing some naming conventions is a key point to make it possible for a team to efficiently collaborate. This rule allows to check that all class names match a provided regular expression.\n</p>\n\n<p>\nThe following code snippet illustrates this rule when the regular expression value is \"^[A-Z][a-zA-Z0-9]*$\":\n</p>\n<pre>\npublic class MyFirstClass { ... } // Compliant\n\npublic class mySecondClass { ... }    // Non-Compliant\n</pre>',2,NULL,'Class names should comply with a naming convention','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,15,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'20min',NULL,NULL,'convention',0,'HTML'),(644,'ModifiersOrderCheck','ModifiersOrderCheck','squid','<p>\nThe Java Language Specification recommends listing modifiers in the following order:\n</p>\n\n<ul>\n  <li>Annotations</li>\n  <li><code>public</code></li>\n  <li><code>protected</code></li>\n  <li><code>private</code></li>\n  <li><code>abstract</code></li>\n  <li><code>static</code></li>\n  <li><code>final</code></li>\n  <li><code>transient</code></li>\n  <li><code>volatile</code></li>\n  <li><code>synchronized</code></li>\n  <li><code>native</code></li>\n  <li><code>strictfp</code></li>\n</ul>\n\n<p>\nNot following this convention has no technical impact, but will reduce the code\'s readability because most developers are used to the standard order.\n</p>\n\n<p>\nThe following code:\n</p>\n\n<pre>\nstatic public void main(String[] args) {   // Non-Compliant\n}\n</pre>\n\n<p>\nshould be refactored into:\n</p>\n\n<pre>\npublic static void main(String[] args) {   // Compliant\n}\n</pre>',1,NULL,'Modifiers should be declared in the correct order','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,15,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'10min',NULL,NULL,'convention',0,'HTML'),(645,'S128','S128','squid','<p>\nWhen the execution is not explicitly terminated at the end of a switch case, it continues to execute the statements of the following case. While this is sometimes intentional, it often is a mistake which leads to unexpected behavior.\n</p>\n\n<h2>\nNoncompliant Code Example\n</h2>\n\n<pre>\nswitch (myVariable) {\n  case 1:                              \n    foo();\n    break;\n  case 2:  // Both \'doSomething()\' and \'doSomethingElse()\' will be executed. Is it on purpose ?\n    doSomething();\n  default:                               \n    doSomethingElse();\n    break;\n}\n</pre>\n\n<h2>\nCompliant Solution\n</h2>\n\n<pre>\nswitch (myVariable) {\n  case 1:                              \n    foo();\n    break;\n  case 2: \n    doSomething();\n    break;\n  default:                               \n    doSomethingElse();\n    break;\n}\n</pre>\n\n<h2>\nExceptions\n</h2>\n\n<pre>\nswitch (myVariable) {\n  case 0:                                // Empty case used to specify the same behavior for a group of cases.\n  case 1:                               \n    doSomething();\n    break;\n  case 2:                                // Use of return statement\n    return;\n  case 3:                                // Use of throw statement\n    throw new IllegalStateException();\n  default:                               // For the last case, use of break statement is optional \n    doSomethingElse();\n}\n</pre>',3,NULL,'Switch cases should end with an unconditional break statement','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,43,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'20min',NULL,NULL,'pitfall',0,'HTML'),(646,'S00100','S00100','squid','<p>\nSharing some naming conventions is a key point to make it possible for a team to efficiently collaborate. This rule allows to check that all function/method names match a provided regular expression.\n</p>\n\n<h2>\nNoncompliant Code Example\n</h2>\n<p>\nWith default provided regular expression: \"^[a-z][a-zA-Z0-9]*$\":\n</p>\n<pre>\npublic void Do_Something() {...}\n</pre>\n\n<h2>\nCompliant Solution\n</h2>\n<pre>\npublic void doSomething(int value) {…}\n}\n</pre>\n\n<h2>\nExceptions\n</h2>\n<p>\nOverriding methods are excluded.\n</p>\n<pre>\n@Override\npublic void Do_Something() {...}\n</pre>',2,NULL,'Method names should comply with a naming convention','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,15,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'10min',NULL,NULL,'convention',0,'HTML'),(647,'MethodCyclomaticComplexity','MethodCyclomaticComplexity','squid','<p>The Cyclomatic Complexity is measured by the number of\n	(&amp;&amp;, ||) operators and (if, while, do, for, ?:, catch, switch,\n	case, return, throw) statements in the body of a class plus one for\n	each constructor, method (but not getter/setter), static initializer,\n	or instance initializer in the class. The last return stament in\n	method, if exists, is not taken into account.</p>\n<p>\n	Even when the Cyclomatic Complexity of a class is very high, this\n	complexity might be well distributed among all methods. Nevertheless,\n	most of the time, a very complex class is a class which breaks the <a\n		href=\"http://en.wikipedia.org/wiki/Single_responsibility_principle\">Single\n		Responsibility Principle</a> and which should be re-factored to be split\n	in several classes.\n</p>',2,NULL,'Methods should not be too complex','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,51,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'10min',NULL,NULL,'brain-overload',0,'HTML'),(648,'S1150','S1150','squid','<p>From the official Oracle Javadoc:</p>\n\n<blockquote>\nNOTE: The functionality of this Enumeration interface is duplicated by the Iterator interface.\nIn addition, Iterator adds an optional remove operation, and has shorter method names.\nNew implementations should consider using Iterator in preference to Enumeration.\n</blockquote>\n\n<p>The following code:</p>\n\n<pre>\npublic class MyClass implements Enumeration {  // Non-Compliant\n  /* ... */\n}\n</pre>\n\n<p>should be refactored into:</p>\n\n<pre>\npublic class MyClass implements Iterator {     // Compliant\n  /* ... */\n}\n</pre>',2,NULL,'Enumeration should not be implemented','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,15,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'1h',NULL,NULL,NULL,0,'HTML'),(649,'S1151','S1151','squid','<p>Switch cases should remain small to keep the overall switch compact and readable.</p>\n\n<p>The following code snippet illustrates this rule with the default threshold of 5:</p>\n\n<pre>\nswitch (myVariable) {\n  case 0:                     // Compliant - 5 lines till following case\n    System.out.println(\"\");\n    System.out.println(\"\");\n    System.out.println(\"\");\n    break;\n  default:                    // Non-Compliant - 6 lines till switch end\n    System.out.println(\"\");\n    System.out.println(\"\");\n    System.out.println(\"\");\n    System.out.println(\"\");\n    break;\n}\n</pre>',2,NULL,'Switch cases should not have too many lines','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,15,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'10min',NULL,NULL,'brain-overload',0,'HTML'),(650,'MaximumInheritanceDepth','MaximumInheritanceDepth','squid','<p>Inheritance is certainly one of the most valuable concept of\n	object-oriented programming. It\'s a way to compartmentalize and reuse\n	code by creating collections of attributes and behaviors called classes\n	which can be based on previously created classes. But abusing of this\n	concept by creating a deep inheritance tree can lead to very complex\n	and unmaintainable source code.</p>\n<p>Most of the time a too deep inheritance tree is due to bad object\n	oriented design which has led to systematically use \'inheritance\' when\n	\'composition\' would suit better.</p>',2,NULL,'Avoid too deep inheritance tree','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(651,'S1314','S1314','squid','<p>\nInteger literals starting with a zero are octal rather than decimal values.\nWhile using octal values in Java is fully supported, most developers do not have experience with them.\nThey may not recognize octal values as such, mistaking them instead for decimal values.\n</p>\n\n<h2>Noncompliant Code Example</h2>\n<pre>\nint myNumber = 010;   // myNumber will hold 8, not 10 - was this really expected?\n</pre>\n\n<h2>Compliant Solution</h2>\n<pre>\nint myNumber = 8;\n</pre>',2,NULL,'Octal values should not be used','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,39,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'5min',NULL,NULL,'pitfall',0,'HTML'),(652,'S1710','S1710','squid','<p>Before Java 8 if you needed to use multiple instances of the same annotation, they had to be wrapped in a container annotation. With Java 8, that\'s no longer necessary, allowing for cleaner, more readable code.</p>\n\n<h2>Noncompliant Code Sample</h2>\n<pre>\n@SomeAnnotations({\n@SomeAnnotation(..a..),\n@SomeAnnotation(..b..),\n@SomeAnnotation(..c..),\n})\npublic class SomeClass {\n...\n}\n</pre>\n\n<h2>Compliant Solution</h2>\n<pre>\n@SomeAnnotation(..a..)\n@SomeAnnotation(..b..)\n@SomeAnnotation(..c..)\npublic class SomeClass {\n...\n}\n</pre>',3,NULL,'Annotation repetitions should not be wrapped','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,15,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'2min',NULL,NULL,'java8',0,'HTML'),(653,'S1315','S1315','squid','<p>This rule allows to track usages of this Checkstyle suppression comment filtering mechanism.</p>\n\n<h2>Noncompliant Code Example</h2>\n<pre>\n// CHECKSTYLE:OFF\n</pre>',1,NULL,'CHECKSTYLE:OFF suppression comment filters should not be used','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,16,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'5min',NULL,NULL,NULL,0,'HTML'),(654,'S1317','S1317','squid','<p>\n  Instantiating a StringBuilder or a StringBuffer with a character is misleading because most Java developers would expect the character to be the initial value of the StringBuffer.\n</p>\n<p>\n  What actually happens is that the int representation of the character is used to determine the initial size of the StringBuffer.\n</p>\n\n<h2>Noncompliant Code Example</h2>\n\n<pre>\nStringBuffer foo = new StringBuffer(\'x\');   //equivalent to StringBuffer foo = new StringBuffer(120);\n</pre>\n\n<h2>Compliant Solution</h2>\n\n<pre>\nStringBuffer foo = new StringBuffer(\"x\");\n</pre>',2,NULL,'StringBuilder and StringBuffer should not be instantiated with a character','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,42,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'5min',NULL,NULL,NULL,0,'HTML'),(655,'S1318','S1318','squid','<p>Inexperienced Java developers might expect the <code>Object.equals(Object obj)</code> method to correctly handle the case where the left hand side is null, but that is not the case.</p>\n\n<h2>Noncompliant Code Example</h2>\n<pre>\nif (variable.equals(null)) { /* ... */ }   // Noncompliant - \"variable\" is really null, a NullPointerException is thrown\n</pre>\n\n<h2>Compliant Solution</h2>\n<pre>\nif (variable == null) { /* ... */ }        // Compliant\n</pre>',3,NULL,'\"object == null\" should be used instead of \"object.equals(null)\"','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,42,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'5min',NULL,NULL,NULL,0,'HTML'),(656,'S1319','S1319','squid','<p>\nThe purpose of the Java Collections API is to provide a well defined hierarchy of interfaces in order to hide all implementation details.\nImplementating classes must be used to instantiate a new collection, but the result of an instantiation should immediately be stored in a variable whose type is a Java Collection interface.\n</p>\n\n<h2>Noncompliant Code Example</h2>\n<pre>\npublic class Employees {\n  private HashSet&lt;Employee&gt; employees = new HashSet&lt;Employee&gt;();  // Noncompliant - \"employees\" should have type \"Set\" rather than \"HashSet\"\n\n  public HashSet&lt;Employee&gt; getEmployees() {                       // Noncompliant\n    return employees;\n  }\n}\n</pre>\n\n<h2>Compliant Solution</h2>\n<pre>\npublic class Employees {\n  private Set&lt;Employee&gt; employees = new HashSet&lt;Employee&gt;();      // Compliant\n\n  public Set&lt;Employee&gt; getEmployees() {                           // Compliant\n    return employees;\n  }\n}\n</pre>',2,NULL,'Declarations should use Java collection interfaces such as \"List\" rather than specific implementation classes such as \"LinkedList\"','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,33,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'10min',NULL,NULL,NULL,0,'HTML'),(657,'S134','S134','squid','<p>\nNested <code>if</code>, <code>for</code>, <code>while</code> and <code>try</code> statements is a key ingredient for making what\'s known as \"Spaghetti code\".\nSuch code is hard to read, refactor and therefore maintain.\n</p>\n\n<h2>Noncompliant Code Example</h2>\n\n<p>The following code snippet illustrates this rule with the default threshold of 3.</p>\n\n<pre>\npublic void process() {\n  if (condition1) {                  // Compliant - depth = 1\n    /* ... */\n    if (condition2) {                // Compliant - depth = 2\n      /* ... */\n      for(int i = 0; i < 10; i++) {  // Compliant - depth = 3, not exceeding the limit\n        /* ... */\n        if (condition4) {            // Non-Compliant - depth = 4\n          if (condition5) {          // Depth = 5, exceeding the limit, but issues are only reported on depth = 4\n            /* ... */\n          }\n          return;\n        }\n      }\n    }\n  }\n}\n</pre>',1,NULL,'Control flow statements \"if\", \"for\", \"while\", \"switch\" and \"try\" should not be nested too deeply','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,36,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'20min',NULL,NULL,'brain-overload',0,'HTML'),(658,'S1153','S1153','squid','<p>\nAppending <code>String.valueOf()</code> to a <code>String</code> decreases the code readability.\nThe argument passed to <code>String.valueOf()</code> should be directly appended instead.\n</p>\n\n<p>The following code:</p>\n\n<pre>\npublic void display(int i){\n  System.out.println(\"Output is \" + String.valueOf(i));    // Non-Compliant\n}\n</pre>\n\n<p>should be refactored into:</p>\n\n<pre>\npublic void display(int i){\n  System.out.println(\"Output is \" + i);                    // Compliant\n}\n</pre>',1,NULL,'String.valueOf() should not be appended to a String','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,15,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'5min',NULL,NULL,NULL,0,'HTML'),(659,'LabelsShouldNotBeUsedCheck','LabelsShouldNotBeUsedCheck','squid','<p>\nLabels are not commonly used in Java, and many developers do not understand how they work.\nMoreover, their usage make the control flow harder to follow, which reduces the code\'s readability.\n</p>\n\n<p>\nThe following code:\n</p>\n\n<pre>\nint matrix[][] = {\n  {1, 2, 3},\n  {4, 5, 6},\n  {7, 8, 9}\n};\n\nouter: for (int row = 0; row < matrix.length; row++) {   // Non-Compliant\n  for (int col = 0; col < matrix[row].length; col++) {\n    if (col == row) {\n      continue outer;\n    }\n    System.out.println(matrix[row][col]);                // Prints the elements under the diagonal, i.e. 4, 7 and 8\n  }\n}\n</pre>\n\n<p>\nshould be refactored into:\n</p>\n\n<pre>\nfor (int row = 1; row < matrix.length; row++) {          // Compliant\n  for (int col = 0; col < row; col++) {\n    System.out.println(matrix[row][col]);                // Also prints 4, 7 and 8\n  }\n}\n</pre>',2,NULL,'Labels should not be used','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,16,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'30min',NULL,NULL,NULL,0,'HTML'),(660,'S1155','S1155','squid','<p>\nUsing <code>Collection.size()</code> to test for emptiness works, but using <code>Collection.isEmpty()</code> makes the code more readable.\n</p>\n\n<p>The following code:</p>\n\n<pre>\nif (myCollection.size() == 0) {  // Non-Compliant\n  /* ... */\n}\n</pre>\n\n<p>should be refactored into:</p>\n\n<pre>\nif (myCollection.isEmpty()) {    // Compliant\n  /* ... */\n}\n</pre>',2,NULL,'Collection.isEmpty() should be used to test for emptiness','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,15,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'2min',NULL,NULL,NULL,0,'HTML'),(661,'S1310','S1310','squid','<p>This rule allows to track usages of this PMD suppression comment filtering mechanism.</p>\n\n<h2>Noncompliant Code Example</h2>\n<pre>\n// NOPMD\n</pre>',1,NULL,'NOPMD suppression comment filters should not be used','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,16,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'10min',NULL,NULL,NULL,0,'HTML'),(662,'S1157','S1157','squid','<p>\nUsing <code>toLowerCase()</code> or <code>toUpperCase()</code> to make case insensitive comparisons is inefficient because it requires the creation of temporary, intermediate <code>String</code> objects.\n</p>\n\n<p>The following code:</p>\n\n<pre>\nboolean result1 = foo.toUpperCase().equals(bar);             // Non-Compliant\nboolean result2 = foo.equals(bar.toUpperCase());             // Non-Compliant\nboolean result3 = foo.toLowerCase().equals(bar.LowerCase()); // Non-Compliant\n</pre>\n\n<p>should be refactored into:</p>\n\n<pre>\nboolean result = foo.equalsIgnoreCase(bar);                  // Compliant\n</pre>',2,NULL,'Case insensitive string comparisons should be made without intermediate upper or lower casing','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,15,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'10min',NULL,NULL,NULL,0,'HTML'),(663,'S1158','S1158','squid','<p>\nCreating temporary primitive wrapper objects only for <code>String</code> conversion is inefficient.\nInstead, the static <code>toString()</code> method of those primitive wrapper classes should be used.\n</p>\n\n<p>For example, the following code:</p>\n\n<pre>\nnew Integer(myInteger).toString();  // Non-Compliant\n</pre>\n\n<p>should be refactored into:</p>\n\n<pre>\nInteger.toString(myInteger);      // Compliant\n</pre>',2,NULL,'Primitive wrappers should not be instantiated only to perform a to String conversion','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,31,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'5min',NULL,NULL,NULL,0,'HTML'),(664,'S1312','S1312','squid','<p>Whatever is the logging framework (logback, log4j, commons-logging, java.util.logging, ...), a logger should be:</p>\n\n<ul>\n  <li><code>private</code>: Never be accessible outside of its parent class. If another class needs to log something, it should instantiate its own logger.</li>\n  <li><code>static</code>: Not dependent on an instance of a class (an object). When logging something, contextual information can of course be provided in the messages but the logger should be created at class level to prevent creating a logger along with each object.</li>\n  <li><code>final</code>: Be created once and only once per class.</li>\n</ul>\n\n<h2>Noncompliant Code Example</h2>\n<pre>\npublic class Foo {\n  public Logger logger = LoggerFactory.getLogger(Foo.class);         // Noncompliant\n\n  public void doSomething() {\n    /* ... */\n  }\n}\n\npublic class Bar {\n  public static void main(String[] args) {\n    Foo foo = new Foo();\n    foo.logger.info(\"Program started\");\n    foo.doSomething();\n  }\n}\n</pre>\n\n<h2>Compliant Solution</h2>\n<pre>\npublic class Foo {\n  private static Logger LOGGER = LoggerFactory.getLogger(Foo.class); // Compliant\n\n  public void doSomething() {\n    /* ... */\n  }\n}\n\npublic class Bar {\n  private static Log LOGGER = LogFactory.getLogger(Bar.class);       // Compliant\n\n  public static void main(String[] args) {\n    LOGGER.info(\"Program started\");\n    Foo foo = new Foo();\n    foo.run();\n  }\n}\n</pre>',2,NULL,'Loggers should be \"private static final\" and should share a naming convention','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,16,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'5min',NULL,NULL,'convention',0,'HTML'),(665,'S1313','S1313','squid','<p>Hardcoding an IP address into source code is a bad idea for several reasons:</p>\n\n<ul>\n  <li>a recompile is required if the address changes</li>\n  <li>it forces the same address to be used in every environment (dev, sys, qa, prod)</li>\n  <li>it places the responsibility of setting the value to use in production on the shoulders of the developer</li>\n</ul>\n\n<h2>Noncompliant Code Example</h2>\n<pre>\nString ip = \"127.0.0.1\";\nSocket socket = new Socket(ip, 6667);\n</pre>\n\n<h2>Compliant Solution</h2>\n<pre>\nString ip = System.getProperty(\"myapplication.ip\");\nSocket socket = new Socket(ip, 6667);\n</pre>',2,NULL,'IP addresses should not be hardcoded','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,33,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'30min',NULL,NULL,'security',0,'HTML'),(666,'ArchitecturalConstraint','ArchitecturalConstraint','squid','<p>A source code comply to an architectural model when it fully\n	adheres to a set of architectural constraints. A constraint allows to\n	deny references between classes by pattern.</p>\n<p>You can for instance use this rule to :</p>\n<ul>\n	<li>forbid access to **.web.** from **.dao.** classes</li>\n	<li>forbid access to java.util.Vector, java.util.Hashtable and\n		java.util.Enumeration from any classes</li>\n	<li>forbid access to java.sql.** from **.ui.** and **.web.**\n		classes</li>\n</ul>',2,NULL,'Architectural constraint','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,'HTML'),(667,'S1181','S1181','squid','<p>\n<code>Throwable</code> is the superclass of all errors and exceptions in Java.\n<code>Error</code> is the superclass of all errors which are not meant to be caught by applications.\n</p>\n\n<p>\nCatching either <code>Throwable</code> or <code>Error</code> will also catch <code>OutOfMemoryError</code> or <code>InternalError</code> from which an application should not attempt to recover.\n</p>\n\n<p>Only <code>Exception</code> and its subclasses should be caught.</p>\n\n<h2>Noncompliant Code Example</h2>\n\n<pre>\ntry { /* ... */ } catch (Throwable t) { /* ... */ }\ntry { /* ... */ } catch (Error e) { /* ... */ } \n</pre>\n\n<h2>Compliant Solution</h2>\n\n<pre>\ntry { /* ... */ } catch (Exception e) { /* ... */ }  \ntry { /* ... */ } catch (RuntimeException e) { /* ... */ }  \ntry { /* ... */ } catch (MyException e) { /* ... */ }  \n</pre>',4,NULL,'Throwable and Error classes should not be caught','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,40,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'20min',NULL,NULL,'error-handling',0,'HTML'),(668,'ObjectFinalizeOverridenCheck','ObjectFinalizeOverridenCheck','squid','<p>\nThis Object.finalize() method is called by the garbage collector on an object when garbage collection determines that there are no more references to the object.\nBut there is absolutely no warranty that this method will be called AS SOON AS the last references to the object are removed.\nIt can be few microseconds to few minutes later.\nSo when some system resources need to be disposed by an object it\'s better to not rely on this asynchronous mechanism to dispose them.\n</p>\n\n<p>\nThe following piece of code illustrates this rule:\n</p>\n\n<pre>\npublic class MyClass {\n\n  protected void finalize() {\n    releaseSomeResources();     // Non-Compliant\n  }\n\n}\n</pre>',3,NULL,'The Object.finalize() method should never be overriden','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,38,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'20min',NULL,NULL,NULL,0,'HTML'),(669,'S1182','S1182','squid','<p>The usual convention for <code>Object.clone()</code> according to Oracle\'s Javadoc is that:</p>\n<ul>\n  <li><code>x.clone() != x</code></li>\n  <li><code>x.clone().getClass() == x.getClass()</code></li>\n  <li><code>x.clone().equals(x)</code></li>\n</ul>\n\n<p>Obtaining the object that will be returned by calling <code>super.clone()</code> helps to satisfy those invariants:</p>\n<ul>\n  <li><code>super.clone()</code> returns a new object instance</li>\n  <li><code>super.clone()</code> returns an object of the same type as the one <code>clone()</code> was called on</li>\n  <li><code>Object.clone()</code> performs a shallow copy of the object\'s state</li>\n</ul>\n\n<p>For example, the following code:</p>\n\n<pre>\nclass BaseClass implements Cloneable {\n  @Override\n  public Object clone() throws CloneNotSupportedException {    // Non-Compliant - should return the super.clone() instance\n    return new BaseClass();\n  }\n}\n\nclass DerivedClass extends BaseClass implements Cloneable {\n  /* Does not override clone() */\n\n  public void sayHello() {\n    System.out.println(\"Hello, world!\");\n  }\n}\n\nclass Application {\n  public static void main(String[] args) throws Exception {\n    DerivedClass instance = new DerivedClass();\n    ((DerivedClass) instance.clone()).sayHello();              // Throws a ClassCastException because invariant #2 is violated\n  }\n}\n</pre>\n\n<p>should be refactored into:</p>\n\n<pre>\nclass BaseClass implements Cloneable {\n  @Override\n  public Object clone() throws CloneNotSupportedException {    // Compliant\n    return super.clone();\n  }\n}\n\nclass DerivedClass extends BaseClass implements Cloneable {\n  /* Does not override clone() */\n\n  public void sayHello() {\n    System.out.println(\"Hello, world!\");\n  }\n}\n\nclass Application {\n  public static void main(String[] args) throws Exception {\n    DerivedClass instance = new DerivedClass();\n    ((DerivedClass) instance.clone()).sayHello();              // Displays \"Hello, world!\" as expected. Invariant #2 is satisfied\n  }\n}\n</pre>',2,NULL,'super.clone() should be called when overriding Object.clone()','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,38,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'20min',NULL,NULL,NULL,0,'HTML'),(670,'ForLoopCounterChangedCheck','ForLoopCounterChangedCheck','squid','<p>\nLoop counters should not be modified in the body of the loop.\nHowever other loop control variables representing logical values may be modified in the loop, for example a flag to indicate that something has been completed, which is then tested in the for statement.\n</p>\n\n<p>\nThe following code:\n</p>\n\n<pre>\nString[] names = new String[]{ \"Jack\", \"Jim\", null, \"John\" };\nfor (int i = 0; i < names.length; i++) {\n  if (names[i] == null) {\n    i = names.length;                                             // Non-Compliant\n  } else {\n    System.out.println(names[i]);\n  }\n}\n</pre>\n\n<p>\nshould be refactored into:\n</p>\n\n<pre>\nString[] names = new String[]{ \"Jack\", \"Jim\", null, \"John\" };\nfor (String name: names) {\n  if (name == null) {\n    break;                                                        // Compliant\n  }\n  System.out.println(name);\n}\n</pre>',2,NULL,'Loop counters should not be assigned to from within the loop body','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,43,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'30min',NULL,NULL,'bug',0,'HTML'),(671,'HiddenFieldCheck','HiddenFieldCheck','squid','<p>\nShadowing fields with a local variable is a bad practice reducing code readability: It makes it confusing to know whether the field or the variable is and should be accessed.\n</p>\n\n<p>\nThe following code illustrates this rule:\n</p>\n\n<pre>\nclass Foo {\n  public int myField;\n\n  public Foo(int myField) {                   // Compliant - method parameters are not checked\n    this.myField = myField;\n  }\n\n  @Override\n  public String toString() {\n    int myField = 0;                          // Non-Compliant - should be renamed\n    return \"Foo{MyField: \" + myField + \"}\";\n  }\n}\n</pre>',2,NULL,'Local variables should not shadow class fields','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,39,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'30min',NULL,NULL,'pitfall',0,'HTML'),(672,'S1226','S1226','squid','<p>\nWhile it is technically correct to assign to parameters from within method bodies, it is better to use temporary variables to store intermediate results.\nThis rule will typically detect cases where a constructor parameter is assigned to itself instead of a field of the same name, i.e. when <code>this</code> was forgotten.\nAllowing parameters to be assigned to also reduces the code readability as developers will not be able to know whether the original parameter or some temporary variable is being accessed without going through the whole method.\nMoreover, some developers might also expect assignments of method parameters to be visible from callers, which is not the case and can confuse them.\nAll parameters should be treated as <code>final</code>.\n</p>\n\n<h2>Noncompliant Code Example</h2>\n<pre>\nclass MyClass {\n  public String name;\n\n  public MyClass(String name) {\n    name = name;                    // Noncompliant - useless identity assignment\n  }\n\n  public int add(int a, int b) {\n    a = a + b;                      // Noncompliant\n\n    /* additional logic */\n\n    return a;                       // Seems like the parameter is returned as is, what is the point?\n  }\n\n  public static void main(String[] args) {\n    MyClass foo = new MyClass();\n    int a = 40;\n    int b = 2;\n    foo.add(a, b);                  // Variable \"a\" will still hold 40 after this call\n  }\n}\n</pre>\n\n<h2>Compliant Solution</h2>\n<pre>\nclass MyClass {\n  public String name;\n\n  public MyClass(String name) {\n    this.name = name;               // Compliant\n  }\n\n  public int add(int a, int b) {\n    return a + b;                   // Compliant\n  }\n\n  public static void main(String[] args) {\n    MyClass foo = new MyClass();\n    int a = 40;\n    int b = 2;\n    foo.add(a, b);\n  }\n}\n</pre>',2,NULL,'Method parameters, caught exceptions and foreach variables should not be reassigned','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,38,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'5min',NULL,NULL,'pitfall',0,'HTML'),(673,'UndocumentedApi','UndocumentedApi','squid','<p>\nTry to imagine using the standard Java API (Collections, JDBC, IO, ...) without Javadoc.\nIt would be a nightmare, because Javadoc is the only way to understand of the contract of the API.\nDocumenting API with Javadoc increases the productivity of the developers consuming it.\n</p>\n\n<p>The following Javadoc elements are required:</p>\n<ul>\n  <li>Parameters, using <code>@param parameterName</code>.</li>\n  <li>Method return values, using <code>@return</code>.</li>\n  <li>Generic types, using <code>@param &lt;T&gt;</code>.</li>\n</ul>\n\n<p>The following public methods and constructors are not taken into account by this rule:</p>\n<ul>\n  <li>Getters and setters.</li>\n  <li>Methods with @Override annotation.</li>\n  <li>Empty constructors.</li>\n  <li>Static constants.</li>\n</ul>\n\n<p>The following code snippet illustrates this rule:</p>\n\n<pre>\n/**\n  * This is a Javadoc comment\n  */\npublic class MyClass&lt;T&gt; implements Runnable {    // Non-Compliant - missing \'@param &lt;T&gt;\'\n\n  public static final DEFAULT_STATUS = 0;        // Compliant - static constant\n  private int status;                            // Compliant - not public\n\n  /**\n    * This is a Javadoc comment\n    */\n  public String message;                         // Compliant - well documented\n\n  public MyClass() {                             // Non-Compliant - missing documentation\n    this.status = DEFAULT_STATUS;\n  }\n\n  public void setStatus(int status) {            // Compliant - setter\n    this.status = status;\n  }\n\n  @Override\n  public void run() {                            // Compliant - has @Override annotation\n  }\n\n  protected void doSomething() {                 // Compliant - not public\n  }\n\n  /**\n    * @param value ...\n    */\n  public void doSomething(int value) {           // Compliant\n  }\n\n  /**\n    */\n  public int doSomething(int value) {            // Non-Compliant - missing \'@param value\' and \'@return\'\n    return value;\n  }\n}\n</pre>',2,NULL,'Public types, methods and fields (API) should be documented with Javadoc','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,16,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'30min',NULL,NULL,'convention',0,'HTML'),(674,'S1185','S1185','squid','<p>Overriding a method just to call the same method from the super class without performing any other actions is useless and misleading.</p>\n\n<p>The following code snippet illustrates this rule:</p>\n\n<pre>\npublic void doSomething() {                     // Non-Compliant\n  super.doSomething();\n}\n\n@Override\npublic boolean isLegal(Action action) {         // Non-Compliant\n  return super.isLegal(action);\n}\n\n@Override\npublic boolean isLegal(Action action) {         // Compliant - not simply forwarding the call\n  return super.isLegal(new Action(/* ... */));\n}\n\n@Id\n@Override\npublic int getId() {                            // Compliant - there is annotation different from @Override\n  return super.getId();\n}\n</pre>',1,NULL,'Overriding methods should do more than simply call the same method in the super class','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,16,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'10min',NULL,NULL,'brain-overload',0,'HTML'),(675,'S1186','S1186','squid','<p>There are three reasons for a method not to have a method body:</p>\n\n<ul>\n  <li>It is an unintentional omission, and should be fixed.</li>\n  <li>It is not yet, or never will be, supported. In this case an <code>UnsupportedOperationException</code> should be thrown.</li>\n  <li>The method is an intentionally-blank override. In this case a nested comment should explain the reason for the blank override.</li>\n</ul>\n\n<p>The following code snippet:</p>\n\n<pre>\n// Non-Compliant\npublic void doSomething() {\n}\n</pre>\n\nshould be refactored into:\n\n<pre>\n// Compliant\n@Override\npublic void doSomethingElse() {\n  // Do nothing because of X and Y.\n}\n</pre>\n\nor:\n\n<pre>\n// Compliant\n@Override\npublic void doSomethingElse() {\n  throw new UnsupportedOperationException();\n}\n</pre>\n\n<p>Empty methods not having any nested comments are tolerated in Abstract classes as those empty methods are usual when implementing the visitor pattern.</p>',2,NULL,'Methods should not be empty','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,38,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'5min',NULL,NULL,NULL,0,'HTML'),(676,'S1066','S1066','squid','<p>Merging collapsible <code>if</code> statements increases the code\'s readability.</p>\n\n<h2>Noncompliant Code Example</h2>\n\n<pre>\nif (file != null) {\n  if (file.isFile() || file.isDirectory()) {\n    /* ... */\n  }\n}\n</pre>\n<h2>Compliant Solution</h2>\n\n<pre>\nif (file != null && isFileOrDirectory(file)) { \n  /* ... */\n}\n\nprivate static boolean isFileOrDirectory(File file) {\n  return file.isFile() || file.isDirectory();\n}\n</pre>',2,NULL,'Collapsible \"if\" statements should be merged','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,15,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'5min',NULL,NULL,NULL,0,'HTML'),(677,'S1220','S1220','squid','<p>According to the Java Language Specification:</p>\n\n<blockquote>\nUnnamed packages are provided by the Java platform principally for convenience when developing small or temporary applications or when just beginning development.\n</blockquote>\n\n<p>To enforce this best practice, classes located in default package can no longer be access from named ones since Java 1.4.</p>\n\n<p>The following piece of code:</p>\n\n<pre>\npublic class MyClass { /* ... */ }\n</pre>\n\n<p>should be refactored into:</p>\n\n<pre>\npackage org.example;\n\npublic class MyClass{ /* ... */ }\n</pre>',2,NULL,'The default unnamed package should not be used','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,33,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'10min',NULL,NULL,NULL,0,'HTML'),(678,'S1067','S1067','squid','<p>\nThe complexity of an expression is defined by the number of <code>&&</code>, <code>||</code> and <code>condition ? ifTrue : ifFalse</code> operators it contains.\nA single expression\'s complexity should not become too high to keep the code readable.\n</p>\n\n<p>The following code, with a maximum complexity of 3:</p>\n\n<pre>\nif (condition1 && condition2 && condition3 && condition4) { /* ... */ }  // Non-Compliant\n</pre>\n\n<p>could be refactored into something like:</p>\n\n<pre>\nif (relevantMethodName1() && relevantMethodName2()) { /* ... */ }        // Compliant\n\n/* ... */\n\nprivate boolean relevantMethodName1() {\n  return condition1 && condition2;\n}\n\nprivate boolean relevantMethodName2() {\n  return condition3 && condition4;\n}\n</pre>',2,NULL,'Expressions should not be too complex','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,51,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'10min',NULL,NULL,'brain-overload',0,'HTML'),(679,'S1188','S1188','squid','<p>\nAnonymous classes and lambdas (with Java 8) are a very convenient and compact way to inject a behavior without having to create a dedicated class. But those anonymous inner classes and lambdas should be used only if the behavior to be injected can be defined in a few lines of code, otherwise the source code can quickly become unreadable.\n</p>',2,NULL,'Lambdas and anonymous classes should not have too many lines','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,15,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'20min',NULL,NULL,'brain-overload',0,'HTML'),(680,'S1221','S1221','squid','<p>Naming a method <code>hashcode()</code> is either:</p>\n\n<ul>\n  <li>A bug. Overriding <code>Object.hashCode()</code> was meant and the application does not behave as expected.</li>\n  <li>Done on purpose. The name however will confuse every other developer, who will think it is a bug.</li>\n</ul>\n\n<p>In both cases, the method should be renamed.</p>\n\n<p>The following code:</p>\n\n<pre>\npublic int hashcode() { /* ... */ }    // Non-Compliant\n</pre>\n\n<p>should be refactored into:</p>\n\n<pre>\n@Override\npublic int hashCode() { /* ... */ }    // Compliant\n</pre>',3,NULL,'Methods should not be named \"hashcode\"','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,38,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'10min',NULL,NULL,'pitfall',0,'HTML'),(681,'S1068','S1068','squid','<p>\nIf a private field is declared but not used in the program, it can be considered dead code and should therefore be removed.\nThis will improve maintainability because developers will not wonder what the variable is used for.\n</p>\n\n<h2>Noncompliant Code Example</h2>\n<pre>\npublic class MyClass {\n  private int foo = 42;\n\n  public int compute(int a) {\n    return a * 42;\n  }\n}\n</pre>\n\n<h2>Compliant Solution</h2>\n<pre>\npublic class MyClass {\n  public int compute(int a) {\n    return a * 42;\n  }\n}\n</pre>\n\n<h2>Exceptions</h2>\n\n<p>\nThe Java serialization runtime associates with each serializable class a version number, called <code>serialVersionUID</code>, which is used during deserialization to verify that the sender and receiver of a serialized object have loaded classes for that object that are compatible with respect to serialization.\nA serializable class can declare its own <code>serialVersionUID</code> explicitly by declaring a field named <code>serialVersionUID</code> that must be static, final, and of type long. By definition those <code>serialVersionUID</code> fields should not be reported by this rule:\n</p>\n\n<pre>\npublic class MyClass implements java.io.Serializable {\n  private static final long serialVersionUID = 42L;\n}\n</pre>',2,NULL,'Unused private fields should be removed','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,16,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'5min',NULL,NULL,'unused',0,'HTML'),(682,'S1223','S1223','squid','Having a class and some of its methods sharing the same name is misleading, and leaves others to wonder whether it was done that way on purpose, or was the methods supposed to be a constructor.\n\n<h2>Noncompliant Code Example</h2>\n<pre>\nclass Foo {\n  public Foo() {...}\n  public int Foo(String label) {...} // Noncompliant\n}\n</pre>\n\n<h2>Compliant Solution</h2>\n<pre>\nclass Foo {\n  public Foo() {...}\n  public int foo(String label) {...} // Compliant\n}\n</pre>',2,NULL,'Non-constructor methods should not have the same name as the enclosing class','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,38,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'5min',NULL,NULL,'pitfall',0,'HTML'),(683,'S1862','S1862','squid','<p>\n  A chain of if/else if statements is evaluated from top to bottom. At most, only one branch of the chain will be executed: the first one with a condition that evaluates to true.\n</p>\n<p>\n  Therefore, duplicating a condition in a sequence of if/else if statements automatically leads to dead code. Usually, is due to a copy/paste error. Obviously it could lead to unexpected behavior.\n</p>\n\n<h2>Noncompliant Code Sample</h2>\n<pre>\nif (param == 1)\n  openWindow();\nelse if (param == 2)\n  closeWindow();\nelse if (param == 1)  // For sure this is a bug\n  moveWindowToTheBackground();\n</pre>\n\n<h2>Compliant Solution</h2>\n<pre>\nif (param == 1)\n  openWindow();\nelse if (param == 2)\n  closeWindow();\nelse if (param == 3)\n  moveWindowToTheBackground();\n</pre>',3,NULL,'Conditions in related \"if/else if\" statements should not be duplicated','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,43,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'10min',NULL,NULL,'bug,unused',0,'HTML'),(684,'XPath','XPath','squid','<p>\nThis rule allows to define some homemade Java rules with help of an XPath expression.\n</p>\n\n<p>\nIssues are created depending on the return value of the XPath expression. If the XPath expression returns:\n</p>\n<ul>\n  <li>a single or list of AST nodes, then a line issue with the given message is created for each node</li>\n  <li>a boolean, then a file issue with the given message is created only if the boolean is true</li>\n  <li>anything else, no issue is created</li>\n</ul>\n\n<p>\nHere is an example of an XPath expression to log an issue on each if statement : //ifStatement\n</p>',2,NULL,'XPath rule','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,'HTML'),(685,'S1170','S1170','squid','<p>\nMaking a constant just <code>final</code> as opposed to <code>static final</code> leads to duplicating its value for every instance of the class,\nuselessly increasing the amount of memory required to execute the application.\n</p>\n\n<h2>Noncompliant Code Example</h2>\n\n<pre>\npublic class Myclass {\n  public final int THRESHOLD = 3;           // Non-Compliant\n}\n</pre>\n\n<h2>Compliant Solution</h2>\n\n<pre>\npublic class Myclass {\n  public static final int THRESHOLD = 3;    // Compliant\n}\n</pre>\n<h2>Exceptions</h2>\n<p>No issues are reported on final fields of inner classes whose type is not a primitive or a String. Indeed according to the Java specification:</p>\n<blockquote>An inner class is a nested class that is not explicitly or implicitly declared static. Inner classes may not declare static initializers (&sect; 8.7) or member interfaces. Inner classes may not declare static members, unless they are compile-time constant fields (&sect; 15.28).</blockquote>',2,NULL,'Constants should be declared \"final static\" rather than merely \"final\"','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,29,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'10min',NULL,NULL,NULL,0,'HTML'),(686,'TrailingCommentCheck','TrailingCommentCheck','squid','<p>\nThis rule verifies that single-line comments are not located at the end of a line of code.\nThe main idea behind this rule is that in order to be really readable, trailing comments would have to be property written and formatted (correct alignment, no interference with the visual structure of the code, not too long to be visible) but most often, automatic code formatters would not handle this correctly: the code would end up less readable.\nComments are far better placed on the previous empty line\nof code, where they will always be visible and properly formatted.\n</p>\n\n<p>\nHowever, this rule allows to write trailing \"metadata comments\" - for which the pattern is configurable, as those metadata comments are usually very short and heavily used in some cases.\n</p>\n\n<pre>\n// The following line is non-compliant\nint a1 = b + c; // This is a trailing comment that can be very very long\n\n// This very long comment is better placed before the line of code\nint a2 = b + c;\n\n// The following line is compliant with the default configuration of the rule\nString a3 = \"id\"; // $NON-NLS-1$\n</pre>',1,NULL,'Comments should not be located at the end of lines of code','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,15,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'1min',NULL,NULL,'convention',0,'HTML'),(687,'S1171','S1171','squid','<p>\nNon-static initializers are rarely used, and can be confusing for most developers.\nWhen possible, they should be refactored into standard constructors or field initializers.\n</p>\n\n<p>The following code:</p>\n\n<pre>\nclass MyClass {\n  private static final Map<String, String> MY_MAP = new HashMap<String, String>() {\n\n    // Non-Compliant - HashMap should be extended only to add behavior, not for initialization\n    {\n      put(\"a\", \"b\");\n    }\n\n  };\n}\n</pre>\n\n<p>could be refactored using Guava into:</p>\n\n<pre>\nclass MyClass {\n  // Compliant\n  private static final Map<String, String> MY_MAP = ImmutableMap.of(\"a\", \"b\");\n}\n</pre>',2,NULL,'Non-static class initializers should not be used','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,16,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'20min',NULL,NULL,NULL,0,'HTML'),(688,'S1172','S1172','squid','<p>Unused parameters are misleading. Whatever the value passed to such parameters is, the behavior will be the same.</p>\n\n<h2>Noncompliant Code Example</h2>\n\n<pre>\nvoid doSomething(int a, int b) {     // \"b\" is unused\n  compute(a);\n}\n</pre>\n\n<h2>Compliant Solution</h2>\n\n<pre>\nvoid doSomething(int a) { \n  compute(a);\n}\n</pre>\n\n<h2>Exceptions</h2>\n\n<h3>For Java</h3>\nMethods overriding or implementing another one should be excluded\n\n<pre>\n@override\nvoid doSomething(int a, int b) {     // no issue reported on b\n  compute(a);\n}\n</pre>',2,NULL,'Unused method parameters should be removed','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,16,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'5min',NULL,NULL,'unused',0,'HTML'),(689,'S1294','S1294','squid','<p>Since arrays do not override <code>Object.equals()</code>, calling equals on two arrays is the same as comparing their addresses. This means that <code>array1.equals(array2)</code> is equivalent to <code>array1==array2</code>.</p>\n\n<p>However, some developers might expect Array.equals(Object obj) to do more than a simple memory address comparison, comparing for instance the size and content of the two arrays. To prevent such a misunderstanding, the \'==\' operator or <code>Arrays.equals(array1, array2)</code> must always be used in place of the Array.equals(Object obj) method.</p>\n\n<h2>Noncompliant Code Example</h2>\n<pre>\nString[] array1 = ...\nString[] array2 = ...\n...\nif(array1.equals(array2)){\n...\n}\n</pre>\n\n<h2>Compliant</h2>\n<pre>\nString[] array1 = ...\nString[] array2 = ...\n...\nif(array1 == array2){\n...\n}\n//or\nif(Arrays.equals(array1, array2)) {\n  ...\n}\n</pre>\n\n<h2>See</h2>\n\n<table class=\"data\">\n  <thead>\n    <tr><th>Tool</th>\n    <th>Reference</th>\n    <th>Description</th></tr>\n  </thead>\n  <tbody>\n  <tr>\n    <td>Findbugs</td>\n    <td>EC_INCOMPATIBLE_ARRAY_COMPARE</td>\n    <td>Correctness - equals(...) used to compare incompatible arrays</td>\n  </tr>\n  <tr>\n    <td>Findbugs</td>\n    <td>EC_BAD_ARRAY_COMPARE</td>\n    <td>Correctness - Invocation of equals() on an array, which is equivalent to ==</td>\n  </tr>\n  </tbody>\n</table>',3,NULL,'The Array.equals(Object obj) method should never be used','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,42,NULL,'LINEAR',NULL,'5min',NULL,NULL,NULL,NULL,'convention',0,'HTML'),(690,'S1609','S1609','squid','<p>A Single Abstract Method (SAM) interface is a Java interface containing only one method. The Java API is full of SAM interfaces, such as java.lang.Runnable, java.awt.event.ActionListener, java.util.Comparator and java.util.concurrent.Callable. SAM interfaces have a special place in Java 8 because they can be implemented using Lambda expressions or Method references.</p>\n\n<p>Using <code>@FunctionalInterface</code> forces a compile break when an additional, non-overriding abstract method is added to a SAM, which would break the use of Lambda implementations.</p>\n\n<h2>Noncompliant Code Example</h2>\n<pre>\n  public interface Changeable&lt;T&gt; {\n    public void change(T o);\n  }\n</pre>\n\n<h2>Compliant Solution</h2>\n<pre>\n  @FunctionalInterface\n  public interface Changeable&lt;T&gt; {\n    public void change(T o);\n  }\n</pre>',2,NULL,'@FunctionalInterface annotation should be used to flag Single Abstract Method interfaces','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,16,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'2min',NULL,NULL,'java8',0,'HTML'),(691,'ClassCyclomaticComplexity','ClassCyclomaticComplexity','squid','<p>The Cyclomatic Complexity is measured by the number of (&&, ||)\n	operators and (if, while, do, for, ?:, catch, switch, case, return,\n	throw) statements in the body of a class plus one for each constructor,\n	method (but not getter/setter), static initializer, or instance\n	initializer in the class. The last return stament in method, if exists,\n	is not taken into account.</p>\n<p>\n	Even when the Cyclomatic Complexity of a class is very high, this\n	complexity might be well distributed among all methods. Nevertheless,\n	most of the time, a very complex class is a class which breaks the <a\n		href=\'http://en.wikipedia.org/wiki/Single_responsibility_principle\'>Single\n		Responsibility Principle</a> and which should be re-factored to be split\n	in several classes.\n</p>',2,NULL,'Avoid too complex class','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,51,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'10min',NULL,NULL,'brain-overload',0,'HTML'),(692,'S1215','S1215','squid','<p>\nCalling <code>System.gc()</code> or <code>Runtime.getRuntime().gc()</code> is a bad idea for a simple reason:\nthere is no way to know exactly what will be done under the hood by the JVM because the behavior will depend on its vendor, version and options:\n</p>\n\n<ul>\n  <li>Will the whole application be frozen during the call?</li>\n  <li>Is the -XX:DisableExplicitGC option activated?</li>\n  <li>Will the JVM simply ignore the call?</li>\n  <li>...</li>\n</ul>\n\n<p>An application relying on those unpredictable methods is also unpredictable and therefore broken.</p>\n\n<p>The task of running the garbage collector should be left exclusively to the JVM.</p>',3,NULL,'Execution of the Garbage Collector should be triggered only by the JVM','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,42,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'30min',NULL,NULL,'bug',0,'HTML'),(693,'S1611','S1611','squid','<p>There are two possible syntaxes for a lambda having only one input parameter with an inferred type: with and without parentheses around that single parameter. The simpler syntax, without parentheses, is more compact and readable than the one with parentheses, and is therefore preferred.</p>\n\n<h2>Noncompliant Code Example</h2>\n<pre>\n(x) -> x * 2\n</pre>\n\n<h2>Compliant Solution</h2>\n<pre>\nx -> x * 2\n</pre>',1,NULL,'Parentheses should be removed from a single lambda input parameter when its type is inferred','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,15,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'2min',NULL,NULL,'java8',0,'HTML'),(694,'S1612','S1612','squid','<p>Method/constructor references are more compact and readable than using lambdas, and are therefore preferred.</p>\n\n<h2>Noncompliant Code Example</h2>\n<pre>\n  List<Integer> list = new ArrayList<Integer>();\n  list.add(0);\n  list.add(1);\n  list.add(2);\n\n    list.forEach(n -> { System.out.println(n); });\n</pre>\n\n<h2>Compliant Solution</h2>\n<pre>\n  List<Integer> list = new ArrayList<Integer>();\n  list.add(0);\n  list.add(1);\n  list.add(2);\n\n  list.forEach(System.out::println);\n</pre>',1,NULL,'Replace lambdas with method references when possible','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,15,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'2min',NULL,NULL,'java8',0,'HTML'),(695,'S1217','S1217','squid','<p>\nThe purpose of the <code>Thread.run()</code> and <code>Runnable.run()</code> methods is to execute code in a separate, dedicated thread.\nCalling those methods directly doesn\'t make sense because it causes their code to be executed in the current thread.\n</p>\n\n<p>To get the expected behavior, call the <code>Thread.start()</code> method instead.</p>\n\n<h2>Noncompliant Code Example</h2>\n<pre>\nThread myThread = new Thread(runnable);\nmyThread.run(); // Noncompliant\n</pre>\n\n<h2>Compliant Solution</h2>\n<pre>\nThread myThread = new Thread(runnable);\nmyThread.start(); // Compliant\n</pre>',3,NULL,'Thread.run() and Runnable.run() should not be called directly','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,42,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'20min',NULL,NULL,'multithreading',0,'HTML'),(696,'S1219','S1219','squid','<p>Even if it is legal, mixing case and non-case labels in the body of a <code>switch</code> statement is very confusing, and can even be the result of a typing error.</p>\n\n<h2>Noncompliant Code Example</h2>\n<p>Case 1, the code is syntactically correct but the behaviour is not the expected one</p>\n<pre>\nswitch (day) {\n  case MONDAY:\n  case TUESDAY:\n  WEDNESDAY:   //instead of \"case WEDNESDAY\"\n    doSomething();\n    break;\n  ...\n}\n</pre>\n<p>Case 2, the code is correct and behaves as expected but is hardly readable</p>\n<pre>\nswitch (day) {\n  case MONDAY:\n    break;\n  case TUESDAY:\n    foo:for(int i = 0 ; i < X ; i++) {\n         /* ... */\n        break foo;  //This break statement doesn\'t relate to the nesting case TUESDAY\n         /* ... */\n    }\n    break;\n    /* ... */\n}\n</pre>\n\n<h2>Compliant Solution</h2>\n\n<p>Case 1</p>\n<pre>\nswitch (day) {\n  case MONDAY:\n  case TUESDAY:\n  case WEDNESDAY:\n    doSomething();\n    break;\n  ...\n}\n</pre>\n<p>Case 2</p>\n<pre>\nswitch (day) {\n  case MONDAY:\n    break;\n  case TUESDAY:\n    compute(args); //Put the content of the labelled \"for\" statement in a dedicated method\n    break;\n\n    /* ... */\n}\n</pre>',3,NULL,'\"switch\" statements should not contain non-case labels','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,15,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'10min',NULL,NULL,NULL,0,'HTML'),(697,'S1174','S1174','squid','<p>\nThe contract of the <code>Object.finalize()</code> method is clear: only the Garbage Collector is supposed to call this method.\nMaking this method public is misleading, because it implies that any caller can use it.\n</p>\n\n<p>The following code snippet illustrates this rule:</p>\n\n<pre>\npublic class MyClass {\n\n  @Override\n  public void finalize() {    // Non-Compliant\n    /* ... */\n  }\n}\n</pre>',2,NULL,'Object.finalize() should remain protected (versus public) when overriding','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,38,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'10min',NULL,NULL,NULL,0,'HTML'),(698,'S1175','S1175','squid','<p><code>Object.finalize()</code> is called by the Garbage Collector sometime after the object became unreferenced.</p>\n\n<p>Overloading this method is misleading:</p>\n<ul>\n  <li>The overloaded method will not be called by the Garbage Collector.</li>\n  <li>Users are not expected to call <code>Object.finalize()</code> and will get confused.</li>\n</ul>\n\n<p>Another name should be picked for the method.</p>\n\n<p>The following code:</p>\n\n<pre>\npublic void finalize(int someParameter) {        // Non-Compliant\n  /* ... */\n}\n</pre>\n\n<p>should be refactored into:</p>\n\n<pre>\npublic void someBetterName(int someParameter) {  // Compliant\n  /* ... */\n}\n</pre>',2,NULL,'Object.finalize() should not be overloaded (by adding method parameters)','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,38,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'10min',NULL,NULL,'pitfall',0,'HTML'),(699,'S1451','S1451','squid','<p>\nEach source file should start with a header stating file ownership and the license which must be used to distribute the application.\nThis rule must be fed with the header text which is expected at the beginning of every file.\n</p>\n\n<p>For example, for SonarSource\'s open source softwares, the <code>headerFormat</code> property must be set to:</p>\n<pre>\n/*\n * SonarQube, open source software quality management tool.\n * Copyright (C) 2008-2013 SonarSource\n * mailto:contact AT sonarsource DOT com\n *\n * SonarQube is free software; you can redistribute it and/or\n * modify it under the terms of the GNU Lesser General Public\n * License as published by the Free Software Foundation; either\n * version 3 of the License, or (at your option) any later version.\n *\n * SonarQube is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public License\n * along with this program; if not, write to the Free Software Foundation,\n * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.\n */\n</pre>',4,NULL,'Copyright and license headers should be defined in all source files','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,22,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'5min',NULL,NULL,'convention',0,'HTML'),(700,'S1210','S1210','squid','<p>\nAccording to the Java <code>Comparable.compareTo(T o)</code> documentation:\n</p>\n\n<blockquote>\nIt is strongly recommended, but not strictly required that <code>(x.compareTo(y)==0) == (x.equals(y))</code>.\nGenerally speaking, any class that implements the Comparable interface and violates this condition should clearly indicate this fact.\nThe recommended language is \"Note: this class has a natural ordering that is inconsistent with equals.\"\n</blockquote>\n\n<p>\nIf this rule is violated, weird and unpredictable failures can occur.\nFor example, in Java 5 the <code>PriorityQueue.remove()</code> method relied on <code>compareTo()</code>, but since Java 6 it relies on <code>equals()</code>.\n</p>\n\n<h2>Noncompliant Code Example</h2>\n\n<pre>\npublic class Foo implements Comparable&lt;Foo&gt; {\n  @Override\n  public int compareTo(Foo foo) { /* ... */ }      // Noncompliant as the equals(Object obj) method is not overridden\n}\n</pre>\n\n<h2>Compliant Solution</h2>\n\n<pre>\npublic class Foo implements Comparable&lt;Foo&gt; {\n  @Override\n  public int compareTo(Foo foo) { /* ... */ }      // Compliant\n\n  @Override\n  public boolean equals(Object obj) { /* ... */ }\n}\n</pre>',3,NULL,'\"equals(Object obj)\" should be overridden along with the \"compareTo(T obj)\" method','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,38,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'30min',NULL,NULL,'bug',0,'HTML'),(701,'S1452','S1452','squid','<p>\n  Using a wildcard as a return type implicitly means that the return parameter should be considered as real-only but without any way to enforce this contract.\n</p>\n<p>\n  Let\'s take the example of method returning a \"List&lt;&#63; extends Animal&gt;\". Is it possible on this list to add a Dog, a Cat, ... we simply don\'t know. The consumer of a method should not have to deal with such disruptive questions.\n</p>\n\n\n<h2>Noncompliant Code Example</h2>\n<pre>\nList&lt;? extends Animal&gt; getAnimals(){...}\n</pre>\n\n<h2>Compliant solution</h2>\n<pre>\n//First Solution: the list can contain any kind of animals\nList&lt;Animal&gt; getAnimals(){...}\n\n//Second Solution: the list can contain only one type of animal\nList&lt;E&gt; getAnimals(){...} //Where E extends Animal in the signature of the nesting class\n</pre>',2,NULL,'Generic wildcard types should not be used in return parameters','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,38,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'20min',NULL,NULL,NULL,0,'HTML'),(702,'S1694','S1694','squid','<p>The purpose of an abstract class is to provide some heritable behaviors while also defining methods which must be implemented by sub-classes.</p>\n\n<p>A class with no abstract methods that was made abstract purely to prevent instantiation should be converted to a concrete class (i.e. remove the <code>abstract</code> keyword) with a private constructor.</p>\n\n<p>A class with only abstract methods and no inheritable behavior should be converted to an interface.</p>\n\n<h2>Noncompliant Code Sample</h2>\n<pre>\npublic abstract class Animal {\n  abstract void move();\n  abstract void feed();\n}\n\npublic abstract class Color {\n  private int red = 0;\n  private int green = 0;\n  private int blue = 0;\n\n  public int getRed(){\n    return red;\n  }\n}\n</pre>\n\n<h2>Compliant Solution</h2>\n<pre>\npublic interface Animal {\n  void move();\n  void feed();\n}\n\npublic class Color {\n  private int red = 0;\n  private int green = 0;\n  private int blue = 0;\n\n  private Color (){\n  }\n\n  public int getRed() {\n    return red;\n  }\n}\n\npublic abstract class Lamp {\n\n  private boolean switchLamp=false;\n  public abstract void glow();\n\n  public void flipSwitch() {\n    switchLamp = !switchLamp;\n    if (switchLamp) {\n       glow();\n    }\n  }\n}\n</pre>',2,NULL,'An abstract class should have both abstract and concrete methods','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,16,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'5min',NULL,NULL,'convention',0,'HTML'),(703,'S1695','S1695','squid','A <code>NullPointerException</code> should indicate that a <code>null</code> value was unexpectedly encountered. Good programming practice dictates that code is structured to avoid NPE\'s. \n\nExplicitly throwing <code>NullPointerException</code> forces a method\'s callers to explicitly catch it, rather than coding to avoid it. Further, it makes it difficult to distinguish between the unexpectedly-encountered <code>null</code> value and the condition which causes the method to purposely throw an NPE.\n\nIf an NPE is being thrown to indicate that a parameter to the method should not have been null, use the <code>@NotNull</code> annotation instead.\n\n<h2>Noncompliant Code Sample</h2>\n<pre>\npublic void doSomething (String aString) throws NullPointerException \n{}\n</pre>\n\n<h2>Compliant Solution</h2>\n<pre>\npublic void doSomething (@NotNull String aString)\n{}\n</pre>',2,NULL,'\"NullPointerException\" should not be explicitly thrown','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,42,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'10min',NULL,NULL,'pitfall',0,'HTML'),(704,'S1696','S1696','squid','<p><code>NullPointerException</code> should be avoided, not caught. Any situation in which <code>NullPointerException</code> is explicitly caught can easily be converted to a <code>null</code> test, and any behavior being carried out in the catch block can easily be moved to the \"is null\" branch of the conditional.</p>\n\n<h2>Noncompliant Code Sample</h2>\n<pre>\npublic int lengthPlus(String str) {\n  int len = 2;\n  try {\n    len += str.length();\n  }\n  catch (NullPointerException e) {\n    log.info(\"argument was null\");\n  }\n  return len;\n}\n</pre>\n\n<h2>Compliant Solution</h2>\n<pre>\npublic int lengthPlus(String str) {\n  int len = 2;\n\n  if (str != null) {\n    len += str.length();\n  }\n  else {\n    log.info(\"argument was null\");\n  }\n  return len;\n}\n</pre>',2,NULL,'\"NullPointerException\" should not be caught','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,31,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'5min',NULL,NULL,'error-handling',0,'HTML'),(705,'S1213','S1213','squid','<p>\nAccording to the Java Code Conventions as defined by Oracle, the parts of a class or interface declaration should appear in the following order in the source files:\n<ul>\n<li>Class and instance variables</li>\n<li>Constructors</li>\n<li>Methods</li>\n</ul>\n</p>\n\n<h2>Noncompliant Code Example</h2>\n<pre>\npublic class Foo {\n  private int field = 0;\n  isTrue() {...}\n  public Foo() {...}                // Noncompliant, constructor defined after method\n  public static final int OPEN = 4; // Noncompliant, variable defined after method\n}\n</pre>\n\n<h2>Compliant Solution</h2>\n<pre>\npublic class Foo{  // Compliant\n  public static final int OPEN = 4;\n  private int field = 0;\n  public Foo() {...}\n  public boolean isTrue() {...}\n}\n</pre>',1,NULL,'The members of an interface declaration or class should appear in a pre-defined order','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,15,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'1min',NULL,NULL,'convention',0,'HTML'),(706,'S1697','S1697','squid','<p>When either the equality operator in a null test or the logical operator that follows it is reversed, the code has the appearance of safely null-testing the object before dereferencing it. Unfortunately the effect is just the opposite - the object is null-tested and then dereferenced _only_ if it is null, leading to a guaranteed null pointer dereference.</p>\n\n<h2>Noncompliant Code Sample</h2>\n<pre>\nif (str == null && str.length() == 0) {\n  System.out.println(\"String is empty\");\n}\n\nif (str != null || str.length() > 0) {\n System.out.println(\"String is not empty\");\n}\n</pre>\n\n<h2>Compliant Solution</h2>\n<pre>\nif (str == null || str.length() == 0) {\n  System.out.println(\"String is empty\");\n}\n\nif (str != null && str.length() > 0) {\n  System.out.println(\"String is not empty\");\n}\n</pre>',4,NULL,'Short-circuit logic should be used to prevent null pointer dereferences in conditionals','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,41,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'2min',NULL,NULL,'bug',0,'HTML'),(707,'S1214','S1214','squid','<p>According to Joshua Bloch, author of \"Effective Java\":</p>\n\n<blockquote>\n<p>\nThe constant interface pattern is a poor use of interfaces.\n</p>\n\n<p>\nThat a class uses some constants internally is an implementation detail.\nImplementing a constant interface causes this implementation detail to leak into the class\'s exported API.\nIt is of no consequence to the users of a class that the class implements a constant interface.\nIn fact, it may even confuse them.\nWorse, it represents a commitment:\nif in a future release the class is modified so that it no longer needs to use the constants,\nit still must implement the interface to ensure binary compatibility.\nIf a nonfinal class implements a constant interface,\nall of its subclasses will have their namespaces polluted by the constants in the interface.\n</p>\n</blockquote>\n\n<h2>Noncompliant Code Example</h2>\n\n<pre>\ninterface Status {                      // Non-Compliant\n   int OPEN = 1;\n   int CLOSED = 2;\n}\n</pre>\n\n<h2>Compliant Solution</h2>\n\n<pre>\npublic enum Status {                    // Compliant\n  OPEN,\n  CLOSED;\n}\n</pre>\n\n<p>or</p>\n\n<pre>\npublic final class Status {             // Compliant\n   public static final int OPEN = 1;\n   public static final int CLOSED = 2;\n}\n</pre>',1,NULL,'Constants should not be defined in interfaces','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,33,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'20min',NULL,NULL,NULL,0,'HTML'),(708,'S1610','S1610','squid','<p>With Java 8\'s \"default method\" feature, any abstract class without direct or inherited field should be converted into an interface.</p>\n\n<h2>Noncompliant Code Example</h2>\n<pre>\npublic abstract class Car {\n  public abstract void start(Environment c);\n\n  public void stop(Environment c) {\n    c.freeze(this);\n  }\n}\n</pre>\n\n<h2>Compliant Solution</h2>\n<pre>\npublic interface Car {\n  public void start(Environment c);\n\n  public default void stop(Environment c) {\n    c.freeze(this);\n  }\n}\n</pre>',2,NULL,'Abstract classes without fields should be converted to interfaces','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,33,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'10min',NULL,NULL,'java8',0,'HTML'),(709,'S1698','S1698','squid','<p>Using the equality (<code>==</code>) and inequality (<code>!=</code>) operators to compare two objects does not check to see if they have the same values. Rather it checks to see if both object references point to exactly the same object in memory. The vast majority of the time, this is not what you want to do. Use the .equals() method to compare the values of two objects or to compare a string object to a string literal.</p>\n\n<h2>Noncompliant Code Sample</h2>\n<pre>\nString str1 = \"blue\";\nString str2 = \"blue\";\nString str3 = str1;\n\nif (str1 == str2)\n{\n  System.out.println(\"they\'re both \'blue\'\"); // this doesn\'t print because the objects are different\n}\n\nif (str1 == \"blue\")\n{\n  System.out.println(\"they\'re both \'blue\'\"); // this doesn\'t print because the objects are different\n}\n\nif (str1 == str3)\n{\n  System.out.println(\"they\'re the same object\"); // this prints\n}\n</pre>\n\n<h2>Compliant Solution</h2>\n<pre>\nString str1 = \"blue\";\nString str2 = \"blue\";\nString str3 = str1;\n\nif (str1.equals(str2))\n{\n  System.out.println(\"they\'re both \'blue\'\"); // this prints\n}\n\nif (str1.equals(\"blue\"))\n{\n  System.out.println(\"they\'re both \'blue\'\"); // this prints\n}\n\nif (str1 == str3)\n{\n  System.out.println(\"they\'re the same object\"); // this still prints, but it\'s probably not what you meant to do\n}\n</pre>',2,NULL,'Objects should be compared with \"equals()\"','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,43,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'2min',NULL,NULL,'error-handling',0,'HTML'),(710,'EmptyFile','EmptyFile','squid','<p>Detect empty files, which do not have any lines of code.</p>\n<p>Example:</p>\n<pre>\n//package org.foo;\n//\n//public class Bar {}\n</pre>',2,NULL,'Empty file','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(711,'RedundantThrowsDeclarationCheck','RedundantThrowsDeclarationCheck','squid','<p>\nAn exception in a <code>throws</code> declaration in Java is redundant if:\n</p>\n\n<ul>\n  <li>It is listed multiple times</li>\n  <li>It is a subclass of another listed exception</li>\n  <li>It is a <code>RuntimeException</code>, or one of its descendants</li>\n</ul>\n\n<p>\nThe following code:\n</p>\n\n<pre>\nvoid foo() throws MyException, MyException {}  // Non-Compliant - should be listed once\nvoid bar() throws Throwable, Exception {}      // Non-Compliant - Exception is a subclass of Throwable\nvoid baz() throws RuntimeException {}          // Non-Compliant - RuntimeException can always be thrown\n</pre>\n\n<p>\nshould be refactored into:\n</p>\n\n<pre>\nvoid foo() throws MyException {}               // Compliant\nvoid bar() throws Throwable {}                 // Compliant\nvoid baz() {}                                  // Compliant\n</pre>',2,NULL,'Throws declarations should not be redundant','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,16,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'1h',NULL,NULL,'error-handling',0,'HTML'),(712,'ObjectFinalizeOverridenCallsSuperFinalizeCheck','ObjectFinalizeOverridenCallsSuperFinalizeCheck','squid','<p>\nOverriding the <code>Object.finalize()</code> method must be done with caution to dispose some system resources.\nCalling the <code>super.finalize()</code> at the end of this method implementation is highly recommended in case parent implementations must also dispose some system resources.\n</p>\n\n<p>\nThe following code snippet illustrates this rule:\n</p>\n\n<pre>\nprotected void finalize() {            // Non-Compliant\n  releaseSomeResources();\n}\n\nprotected void finalize() {\n  super.finalize();                    // Non-Compliant\n  releaseSomeResources();\n}\n\nprotected void finalize() {\n  releaseSomeResources();\n  super.finalize();                    // Compliant\n}\n</pre>',4,NULL,'super.finalize() should be called at the end of Object.finalize() implementations','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,42,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'5min',NULL,NULL,'bug',0,'HTML'),(713,'S1481','S1481','squid','<p>\nIf a local variable is declared but not used in the program, it can be considered dead code and should therefore be removed.\nThis will improve maintainability because developers will not wonder what the variable is used for.\n</p>\n\n<h2>Noncompliant Code Example</h2>\n<pre>\npublic int compute(int a){\n  int foo = 6;\n  return a * 4;\n}\n</pre>\n\n<h2>Compliant Solution</h2>\n<pre>\npublic int compute(int a){\n  return a * 4;\n}\n</pre>',2,NULL,'Unused local variables should be removed','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,16,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'5min',NULL,NULL,'unused',0,'HTML'),(714,'SwitchLastCaseIsDefaultCheck','SwitchLastCaseIsDefaultCheck','squid','<p>\nThe requirement for a final default clause is defensive programming.\nThis clause should either take appropriate action or contain a suitable comment as to why no action is taken.\n</p>\n\n<p>\nThe following code snippet illustrates this rule:\n</p>\n\n<pre>\nswitch (state) {                       // Non-Compliant - must have a default case\n  case 0:\n  case 1:\n    System.out.println(\"0 or 1!\");\n    break;\n}\n\nswitch (state) {\n  default:                             // Non-Compliant - must be last for better readability\n    throw new IllegalStateException();\n  case 0:\n  case 1:\n    System.out.println(\"0 or 1!\");\n    break;\n}\n\nswitch (state) {\n  case 0:\n  case 1:\n    System.out.println(\"0 or 1!\");\n    break;\n  default:                             // Compliant\n    throw new IllegalStateException();\n</pre>',2,NULL,'Switch statements should end with a default case','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,43,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'1h',NULL,NULL,NULL,0,'HTML'),(715,'CallToDeprecatedMethod','CallToDeprecatedMethod','squid','<p>Once deprecated, a method should no longer be used as it means\n	that the method might be removed sooner or later.</p>',1,NULL,'Avoid use of deprecated method','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,11,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'1h',NULL,NULL,NULL,0,'HTML'),(716,'LeftCurlyBraceStartLineCheck','LeftCurlyBraceStartLineCheck','squid','<p>\nSharing some coding conventions is a key point to make it possible for a team to efficiently collaborate.\nThis rule make it mandatory to place left curly braces at the beginning of lines of code.\n</p>\n\n<p>\nThe following code snippet illustrates this rule:\n</p>\n\n<pre>\npublic void myMethod\n{                                               // Compliant\n  if(something)\n  {                                             // Compliant\n    executeTask();\n  } else {                                      // Non-Compliant\n    doSomethingElse();\n  }\n}\n</pre>',2,NULL,'Left curly braces should be located at the beginning of lines of code','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,15,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'1min',NULL,NULL,'convention',0,'HTML'),(717,'CallToFileDeleteOnExitMethod','CallToFileDeleteOnExitMethod','squid','<p>Usage of method File#deleteOnExit() is not recommended for following reasons:</p>\n<ul>\n  <li>The deletion occurs only in case of normal JVM shutdown but not when the JVM is killed or crashes</li>\n  <li>For each file handler, the memory associated to this handler is released only at the end of the process</li>\n</ul>',2,NULL,'Do not use File#deleteOnExit()','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,29,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'30min',NULL,NULL,NULL,0,'HTML'),(718,'ClassVariableVisibilityCheck','ClassVariableVisibilityCheck','squid','<p>\nPublic class variable fields do not respect the encapsulation principle and has two main disadvantages:\n</p>\n\n<ul>\n  <li>Additional behavior such as validation cannot be added.</li>\n  <li>The internal representation is exposed, and cannot be changed afterwards.</li>\n</ul>\n\n<p>The following code:</p>\n\n<pre>\npublic class MyClass {\n\n  public static final int SOME_CONSTANT = 0;     // Compliant - constants are not checked\n\n  public String firstName;                       // Non-Compliant\n\n}\n</pre>\n\n<p>should be refactored into:</p>\n\n<pre>\npublic class MyClass {\n\n  public static final int SOME_CONSTANT = 0;     // Compliant - constants are not checked\n\n  private String firstName;                      // Compliant\n\n  public String getFirstName() {\n    return firstName;\n  }\n\n  public void setFirstName(String firstName) {\n    this.firstName = firstName;\n  }\n\n}\n</pre>',2,NULL,'Class variable fields should not have public accessibility','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,33,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'10min',NULL,NULL,NULL,0,'HTML'),(719,'RightCurlyBraceDifferentLineAsNextBlockCheck','RightCurlyBraceDifferentLineAsNextBlockCheck','squid','<p>\nSharing some coding conventions is a key point to make it possible for a team to efficiently collaborate.\nThis rule make it mandatory to place closing curly braces and next <code>else</code>, <code>catch</code> or <code>finally</code> keywords on two different lines.\n</p>\n\n<p>\nThe following code snippet illustrates this rule:\n</p>\n\n<pre>\npublic void myMethod() {\n  if(something) {\n    executeTask();\n  } else if (somethingElse) {          // Non-Compliant\n    doSomethingElse();\n  }\n  else {                               // Compliant\n     generateError();\n  }\n\n  try {\n    generateOrder();\n  } catch (Exception e) {              // Non-Compliant\n    log(e);\n  }\n  finally {                            // Compliant\n    closeConnection();\n  }\n}\n</pre>',2,NULL,'Right curly brace and next \"else\", \"catch\" and \"finally\" keywords should be located on two different lines','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,15,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'1min',NULL,NULL,'convention',0,'HTML'),(720,'RightCurlyBraceSameLineAsNextBlockCheck','RightCurlyBraceSameLineAsNextBlockCheck','squid','<p>\nSharing some coding conventions is a key point to make it possible for a team to efficiently collaborate.\nThis rule make it mandatory to place closing curly braces on the same line that next <code>else</code>, <code>catch</code> or <code>finally</code> keywords.\n</p>\n\n<p>\nThe following code snippet illustrates this rule:\n</p>\n\n<pre>\npublic void myMethod() {\n  if(something) {\n    executeTask();\n  } else if (somethingElse) {          // Compliant\n    doSomethingElse();\n  }\n  else {                               // Non-Compliant\n     generateError();\n  }\n\n  try {\n    generateOrder();\n  } catch (Exception e) {              // Compliant\n    log(e);\n  }\n  finally {                            // Non-Compliant\n    closeConnection();\n  }\n}\n</pre>',2,NULL,'Right curly brace and next \"else\", \"catch\" and \"finally\" keywords should be located on the same line','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,15,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'1min',NULL,NULL,'convention',0,'HTML'),(721,'S1125','S1125','squid','<p>\nRemove literal boolean values from conditional expressions to improve readability. Anything that can be tested for equality with a boolean value must itself be a boolean value, and boolean values can be tested atomicly.\n</p>\n\n<h2>Noncompliant Code Example</h2>\n\n<pre>\nif (booleanVariable == true) { /* ... */ }\nif (booleanVariable != true) { /* ... */ }\nif (booleanVariable || false) { /* ... */ }\ndoSomething(!false);\n</pre>\n\n<h2>Compliant Solution</h2>\n\n<pre>\nif (booleanVariable) { /* ... */ }\nif (!booleanVariable) { /* ... */ }\nif (booleanVariable) { /* ... */ }\ndoSomething(true);\n</pre>',1,NULL,'Literal boolean values should not be used in condition expressions','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,16,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'10min',NULL,NULL,NULL,0,'HTML'),(722,'S1488','S1488','squid','<p>Declaring a variable only to immediately return or throw it is a bad practice.\nSome developers argue that the practice improves code readability, because it enables them to explicitly name what is being returned. However, this variable is an internal implementation detail that is not exposed to the callers of the method. The method name should be sufficient for callers to know exactly what will be returned.</p>\n\n<h2>Noncompliant Code Example</h2>\n\n<pre>\npublic long computeDurationInMilliseconds() {\n  long duration = (((hours * 60) + minutes) * 60 + seconds ) * 1000 ;\n  return duration;\n}\n\npublic void doSomething() {\n  RuntimeException myException = new RuntimeException();\n  throw myException;\n}\n</pre>\n<h2>Compliant Solution</h2>\n\n<pre>\npublic long computeDurationInMilliseconds() {\n  return (((hours * 60) + minutes) * 60 + seconds ) * 1000 ;\n}\n\npublic void doSomething() {\n  throw new RuntimeException();\n}\n</pre>',1,NULL,'Variables should not be declared and then immediately returned or thrown','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,15,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'2min',NULL,NULL,NULL,0,'HTML'),(723,'S1126','S1126','squid','<p>\nReturn of boolean literal statements wrapped into <code>if-then-else</code> ones should be simplified.\n</p>\n\n<h2>Noncompliant Code Example</h2>\n<pre>\nif (expression) {\n  return true;\n} else {\n  return false;\n}\n</pre>\n\n<h2>Compliant Solution</h2>\n\n<pre>\nreturn expression;   \n</pre>',2,NULL,'Return of boolean expressions should not be wrapped into an if-then-else statement','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,15,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'10min',NULL,NULL,NULL,0,'HTML'),(724,'S1643','S1643','squid','<p>Strings are immutable objects in Java, so concatenation doesn\'t simply add the new String to the end of the existing string. Instead, in each loop iteration, the first String is converted to an intermediate object type, the second string is appended, and then the intermediate object is converted back to a String. Further, performance of these intermediate operations degrades as the String gets longer. Therefore, the use of StringBuilder is preferred.</p>\n\n<h2>Noncompliant Code Example</h2>\n<pre>\nString str = \"\";\nfor (int i = 0; i < arrayOfStrings.length ; ++i) {\n  str = str + arrayOfStrings[i];\n}\n</pre>\n\n<h2>Compliant Solution</h2>\n<pre>\nStringBuilder bld = new StringBuilder();\nfor (int i = 0; i < arrayOfStrings.length; ++i) {\n  bld.append(arrayOfStrings[i]);\n}\nString str = bld.toString();\n</pre>',2,NULL,'Strings should not be concatenated using \'+\' in a loop','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,29,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'10min',NULL,NULL,'performance',0,'HTML'),(725,'UselessParenthesesCheck','UselessParenthesesCheck','squid','<p>\nUseless parentheses can sometimes be misleading and so should be removed.\n</p>\n\n<p>\nThe following code snippet illustrates this rule:\n</p>\n\n<pre>\nreturn 3;             // Compliant\nreturn (x);           // Non-Compliant\nreturn (x + 1);       // Non-Compliant\nint x = (y / 2 + 1);  // Non-Compliant\nint y = (4+X) * y;    // Compliant\n</pre>',2,NULL,'Useless parentheses around expressions should be removed to prevent any misunderstanding','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,15,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'1min',NULL,NULL,NULL,0,'HTML'),(726,'S1190','S1190','squid','<p>\nAs of Java 5, <code>enum</code> is a keyword and can therefore no longer be used a variable names for instance.\nRecent versions of the Java compiler will generate errors while compiling code still using <code>enum</code> as a name.\n</p>\n\n<p>The following code snippet illustrates this rule:</p>\n\n<pre>\npublic void doSomething() {\n  int enum = 42;            // Non-Compliant\n}\n</pre>',2,NULL,'\"enum\" should no longer be used as a name','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,6,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'10min',NULL,NULL,NULL,0,'HTML'),(727,'S1191','S1191','squid','<p>\nClasses in <code>com.sun.*</code> and <code>sun.*</code> packages are considered implementation details, and are not part of the Java API.\nThey can cause problems when moving to new versions of Java because there is no backwards compatibility guarantee.\nSuch classes are almost always wrapped by Java API classes that should be used instead.\n</p>\n\n<h2>Noncompliant Code Example</h2>\n\n<pre>\nimport com.sun.jna.Native;     // Non-Compliant\nimport sun.misc.BASE64Encoder; // Non-Compliant\n</pre>',2,NULL,'Classes from \"com.sun.*\" and \"sun.*\" packages should not be used','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,6,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'1h',NULL,NULL,NULL,0,'HTML'),(728,'S1192','S1192','squid','<p>\n  Duplicated string literals make the process of refactoring error-prone, since you must be sure to update all occurrences.\n  On the other hand, constants can be referenced from many places, but only need to be updated in a single place.\n</p>\n\n<h2>Non Compliant Code Example</h2>\n\n<pre>\npublic void run() {\n  prepare(\"action1\");                              // Non-Compliant - \"action1\" is duplicated 3 times\n  execute(\"action1\");\n  release(\"action1\");\n}\n\n@SuppressWarning(\"all\")                            // Compliant - annotations are excluded\nprivate void method1() { /* ... */ }\n@SuppressWarning(\"all\")\nprivate void method2() { /* ... */ }\n\npublic String method3(String a) {\n  System.out.println(\"\'\" + a + \"\'\");               // Compliant - literal \"\'\" has less than 5 characters and is excluded\n  return \"\";                                       // Compliant - literal \"\" has less than 5 characters and is excluded\n}\n</pre>\n\n<h2>Compliant Code Example</h2>\n\n<pre>\nprivate static final String ACTION_1 = \"action1\";  // Compliant\n\npublic void run() {\n  prepare(ACTION_1);                               // Compliant\n  execute(ACTION_1);\n  release(ACTION_1);\n}\n</pre>\n\n<h2>Exceptions</h2>\n<p>To prevent generating some false-positives, literals having less than 5 characters are excluded.</p>',1,NULL,'String literals should not be duplicated','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,39,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'10min',NULL,NULL,NULL,0,'HTML'),(729,'UnusedPrivateMethod','UnusedPrivateMethod','squid','<p>Private methods that are never executed are dead code. Dead code\n  means unnecessary, inoperative code that should be removed. This helps\n  in maintenance by decreasing the maintained code size, making it easier\n  to understand the program and preventing bugs from being introduced.</p>\n<p>In the following two cases, private methods are not considered as\n  dead code by SonarQube :</p>\n<ul>\n  <li>Private empty constructors that are intentionally used to\n    prevent any direct instantiation of a class.</li>\n  <li>Private methods : readObject(...), writeObject(...),\n    writeReplace(...), readResolve(...) which can contractually be used\n    when implementing the Serializable interface.</li>\n</ul>',2,NULL,'Unused private method','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,16,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'5min',NULL,NULL,'unused',0,'HTML'),(730,'S1193','S1193','squid','<p>\nMultiple catch blocks of the appropriate type should be used instead of catching a general exception, and then testing on the type.\n</p>\n\n<p>For example, following code:</p>\n\n<pre>\ntry {\n  /* ... */\n} catch (Exception e) {\n  if(e instanceof IOException) { /* ... */ }         // Non-Compliant\n  if(e instanceof NullPointerException{ /* ... */ }  // Non-Compliant\n}\n</pre>\n\n<p>should be refactored into:</p>\n\n<pre>\ntry {\n  /* ... */\n} catch (IOException e) { /* ... */ }                // Compliant\n} catch (NullPointerException e) { /* ... */ }       // Compliant\n</pre>',2,NULL,'Exception types should not be tested using \"instanceof\" in catch blocks','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,16,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'10min',NULL,NULL,'error-handling',0,'HTML'),(731,'S1194','S1194','squid','<p>\n<code>java.lang.Error</code> and its subclasses represent abnormal conditions, such as <code>OutOfMemoryError</code>, which should only be encountered by the Java Virtual Machine.\n</p>\n\n<p>The following code snippet:</p>\n\n<pre>\npublic class MyException extends Error { /* ... */ }       // Non-Compliant\n</pre>\n\n<p>should be refactored into:</p>\n\n<pre>\npublic class MyException extends Exception { /* ... */ }   // Compliant\n</pre>',2,NULL,'\"java.lang.Error\" should not be extended','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,40,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'10min',NULL,NULL,'error-handling',0,'HTML'),(732,'CommentedOutCodeLine','CommentedOutCodeLine','squid','<p>Here are the main reasons why commented code is a code smell :</p>\n<ul>\n    <li>It always raises more questions than it gives answers</li>\n    <li>Everybody will forget very quickly how relevant the commented code is</li>\n    <li>This is distraction when going down the code as it stops the flow of eyes</li>\n    <li>It is a bad SCM engine : Subversion, CVS and Git are really more trustworthy !</li>\n    <li>The simple fact of understanding why code was commented out in the first place can take a lot of time</li>\n</ul>',2,NULL,'Avoid commented-out lines of code','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,16,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'1h',NULL,NULL,'unused',0,'HTML'),(733,'S1195','S1195','squid','<p>\nAccording to the Java Language Specification:\n</p>\n\n<pre>\nFor compatibility with older versions of the Java SE platform,\nthe declaration of a method that returns an array is allowed to place (some or all of) the empty bracket pairs that form the declaration of the array type after the formal parameter list.\nThis obsolescent syntax should not be used in new code.\n</pre>\n\n<p>The following code snippet illustrates this rule:</p>\n\n<pre>\npublic int getVector()[] { /* ... */ }    // Non-Compliant\n\npublic int[] getVector() { /* ... */ }    // Compliant\n\npublic int[] getMatrix()[] { /* ... */ }  // Non-Compliant\n\npublic int[][] getMatrix() { /* ... */ }  // Compliant\n</pre>',1,NULL,'Array designators \"[]\" should be located after the type in method signatures','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,15,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'5min',NULL,NULL,'convention',0,'HTML'),(734,'UnusedProtectedMethod','UnusedProtectedMethod','squid','<p>Protected methods that are never used by any classes in the same\n  project are strongly suspected to be dead code. Dead code means\n  unnecessary, inoperative code that should be removed. This helps in\n  maintenance by decreasing the maintained code size, making it easier to\n  understand the program and preventing bugs from being introduced.</p>\n<p>In the following case, unused protected methods are not\n  considered as dead code by SonarQube :</p>\n<ul>\n  <li>Protected methods which override a method from a parent class.</li>\n  <li>Protected methods of an abstract class.</li>\n</ul>',2,NULL,'Unused protected method','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,16,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'5min',NULL,NULL,'unused',0,'HTML'),(735,'UselessImportCheck','UselessImportCheck','squid','<p>\nThe imports part of a file should be handled by the Integrated Development Environment (IDE), not manually by the developer.\nUnused and useless imports should not occur if that is the case.\nLeaving them in reduces the code\'s readability, since their presence can be confusing.\n</p>\n\n<p>The following code snippet illustrates this rule:</p>\n\n<pre>\npackage my.company;\n\nimport java.lang.String;        // Non-Compliant - java.lang classes are always implicitly imported\nimport my.company.SomeClass;    // Non-Compliant - same package files are always implicitly imported\nimport java.io.File;            // Non-Compliant - File is not used\n\nimport my.company2.SomeType;\nimport my.company2.SomeType;    // Non-Compliant - \'SomeType\' is already imported\n\nclass ExampleClass {\n\n  public String someString;\n  public SomeType something;\n\n}\n</pre>',1,NULL,'Useless imports should be removed','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,15,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'10min',NULL,NULL,'unused',0,'HTML'),(736,'CycleBetweenPackages','CycleBetweenPackages','squid','<p>\nWhen several packages are involved in a cycle (package A > package B > package C > package A where \">\" means \"depends upon\"),\nthat means that those packages are highly coupled and that there is no way to reuse/extract one of those packages without importing all the other packages.\nSuch cycle could quickly increase the effort required to maintain an application and to embrace business change.\nSonarQube not only detect cycles between packages but also determines what is the minimum effort to break those cycles.\nThis rule logs an issue on each source file having an outgoing dependency to be cut in order to break a cycle.\n</p>',2,NULL,'Avoid cycle between java packages','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,33,NULL,'LINEAR',NULL,'1d',NULL,NULL,NULL,NULL,NULL,0,'HTML'),(737,'S1118','S1118','squid','<p>\nUtility classes, which are a collection of static members, are not meant to be instantiated.\nThey should therefore not have public constructors.\n</p>\n\n<p>\nJava adds an implicit public constructor to every class which does not define at least one explicitly.\nHence, at least one non-public constructor should be defined.\n</p>\n\n<p>The following code:</p>\n\n<pre>\nclass StringUtils { // Non-Compliant\n\n  public static String concatenate(String s1, String s2) {\n    return s1 + s2;\n  }\n\n}\n</pre>\n\n<p>should be refactored into:</p>\n\n<pre>\nclass StringUtils { // Compliant\n\n  private StringUtils() {\n  }\n\n  public static String concatenate(String s1, String s2) {\n    return s1 + s2;\n  }\n\n}\n</pre>',2,NULL,'Utility classes should not have a public constructor','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,16,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'30min',NULL,NULL,NULL,0,'HTML'),(738,'NoSonar','NoSonar','squid','<p>Any issue to quality rule can be deactivated with the\n	//NOSONAR marker. This marker is pretty useful to exclude\n	false-positive results but sometimes it can abusively be used to hide\n	real quality flaws.</p>\n<p>This rule allows to track and/or forbid use of this marker</p>',0,NULL,'Avoid use of //NOSONAR marker','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,18,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'30min',NULL,NULL,NULL,0,'HTML'),(739,'S1197','S1197','squid','<p>\nArray designators should always be located on the type for better code readability.\nOtherwise, developers must look both at the type and the variable name to know whether or not a variable is an array.\n</p>\n\n<p>The following code snippet illustrates this rule:</p>\n\n<pre>\nint matrix[][];   // Non-Compliant\nint[] matrix[];   // Non-Compliant\nint[][] matrix;   // Compliant\n</pre>',1,NULL,'Array designators \"[]\" should be on the type, not the variable','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,15,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'5min',NULL,NULL,'convention',0,'HTML'),(740,'S1199','S1199','squid','<p>\nNested code blocks can be used to create a new scope and restrict the visibility of the variables defined within.\nUsing this feature in a method typically indicates that it takes on too many responsibilities, and should be refactored into smaller ones.\n</p>\n\n<p>The following code:</p>\n\n<pre>\npublic void evaluate(int operator) {\n  switch (operator) {\n    /* ... */\n    case ADD: {                                // Non-Compliant - nested code block \'{\' ... \'}\'\n        int a = stack.pop();\n        int b = stack.pop();\n        int result = a + b;\n        stack.push(result);\n        break;\n      }\n    /* ... */\n  }\n}\n</pre>\n\n<p>should be refactored into:</p>\n\n<pre>\npublic void evaluate(int operator) {\n  switch (operator) {\n    /* ... */\n    case ADD:                                  // Compliant\n      evaluateAdd();\n      break;\n    /* ... */\n  }\n}\n\nprivate void evaluateAdd() {\n  int a = stack.pop();\n  int b = stack.pop();\n  int result = a + b;\n  stack.push(result);\n}\n</pre>',2,NULL,'Nested code blocks should not be used','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,16,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'10min',NULL,NULL,NULL,0,'HTML'),(741,'S1596','S1596','squid','<p>Since the introduction of generics in Java 5, it is recommenced to use generic types such as <code>List&lt;String&gt;</code> instead of raw ones such as just <code>List</code>. Assigning a raw type into a generic one is not type safe, and will generate a warning. The old <code>EMPTY_...</code> fields of the <code>Collections</code> class return raw types, whereas the newer <code>empty...()</code> methods return generic ones.</p>\n\nDevelopers will also more easily find the <code>emptyIterator()</code> and <code>emptyListIterator()</code> methods for which there is no field equivalent if they are used to call the methods.\n\n<h2>Noncompliant Code Example</h2>\n<pre>\nList&lt;String&gt; collection1 = Collections.EMPTY_LIST;\nMap&lt;String, String&gt; collection2 = Collections.EMPTY_MAP;\nSet&lt;String&gt; collection3 = Collections.EMPTY_SET;\n</pre>\n\n<h2>Compliant Solution</h2>\n<pre>\nList&lt;String&gt; collection1 = Collections.emptyList();\nMap&lt;String, String&gt; collection2 = Collections.emptyMap();\nSet&lt;String&gt; collection3 = Collections.emptySet();\n</pre>',2,NULL,'Collections.emptyList(),emptyMap() and emptySet() should be used instead of Collections.EMPTY_LIST, EMPTY_MAP and EMPTY_SET','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,15,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'2min',NULL,NULL,NULL,0,'HTML'),(742,'S1598','S1598','squid','<p>By convention, a Java class\' physical location (source directories) and its logical representation (packages) should be kept in sync. Thus a Java file located at \"src/org/sonarqube/Foo.java\" should have a package of \"org.sonarqube\".</p>\n\n<p>Unfortunately, this convention is not enforced by Java compilers, and nothing prevents a developer from making the \"Foo.java\" class part of the \"com.apple\" package, which could degrade the maintainability of both the class and its application.</p>',2,NULL,'Package declaration should match source file directory','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,16,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'5min',NULL,NULL,NULL,0,'HTML'),(743,'S00112','S00112','squid','<p>\nUsing such generic exception prevents calling methods from handling differently each kind of error.\n</p>\n\n<h2>\nNoncompliant Code Example\n</h2>\n\n<pre>\npublic void foo(String bar) throws Throwable { // Noncompliant\n  throw new RuntimeException(\"My Message\");    // Noncompliant\n}\n</pre>\n\n<h2>\nCompliant Solution\n</h2>\n\n<pre>\npublic void foo(String bar) {\n  throw new MyOwnRuntimeException(\"My Message\");\n}\n</pre>\n\n<h2>\nExceptions\n</h2>\n\n<p>\nGeneric exceptions in signature of overriding methods are excluded\n</p>\n\n<pre>\n@Override\npublic void myMethod() throws Exception {...}\n</pre>',2,NULL,'Generic exceptions Error, RuntimeException, Throwable and Exception should never be thrown','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,40,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'20min',NULL,NULL,'error-handling',0,'HTML'),(744,'S1149','S1149','squid','<p>\nEarly classes of the Java API, such as <code>Vector</code>, <code>Hashtable</code> and <code>StringBuffer</code>, were synchronized to make them thread-safe.\nUnfortunately, synchronization has a big negative impact on performance, even when using these collections from a single thread.\n</p>\n\n<p>It is better to use their new unsynchronized replacements:</p>\n\n<ul>\n  <li><code>ArrayList</code> or <code>LinkedList</code> instead of <code>Vector</code></li>\n  <li><code>Deque</code> instead of <code>Stack</code></li>\n  <li><code>HashMap</code> instead of <code>Hashtable</code></li>\n  <li><code>StringBuilder</code> instead of <code>StringBuffer</code></li>\n</ul>\n\n<h2>Noncompliant Code Example</h2>\n\n<pre>\nVector cats = new Vector();\n</pre>\n\n<h2>Compliant Solution</h2>\n\n<pre>\nArrayList cats = new ArrayList(); \n</pre>\n\n<h2>Exceptions</h2>\n\n<p>Use of those synchronized classes is allowed in method signatures when overriding an existing method.</p>\n\n<pre>\n@Override\npublic Vector getCats() {...} \n</pre>',2,NULL,'Synchronized classes Vector, Hashtable, Stack and StringBuffer should not be used','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,31,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'20min',NULL,NULL,NULL,0,'HTML'),(745,'S1700','S1700','squid','<p>It\'s confusing to have a class member with the same name (case differences aside) as its enclosing class. This is particularly so when you consider the common practice of naming a class instance for the class itself.</p>\n\n<p>Best practice dictates that any field or member with the same name as the enclosing class be renamed to be more descriptive of the particular aspect of the class it represents or holds.</p>\n\n<h2>Noncompliant Code Sample</h2>\n<pre>\npublic class Foo {\n  private String foo;\n\n  public String getFoo() { }\n}\n\nFoo foo = new Foo();\nfoo.getFoo() // what does this return?\n</pre>\n\n<h2>Compliant Solution</h2>\n<pre>\npublic class Foo {\n  private String name;\n\n  public String getName() { }\n}\n\n//...\n\nFoo foo = new Foo();\nfoo.getName()\n</pre>\n\n<h2>Exception</h2>\n\n<p>When the type of the field is the containing class and that field is static, no issue is raised to allow singletons named like the type.</p>\n<pre>\npublic class Foo {\n...\n  private static Foo foo;\n  public Foo getInstance() {\n    if(foo==null){\n      foo = new Foo();\n    }\n    return foo;\n  }\n...\n}\n</pre>',2,NULL,'A field should not duplicate the name of its containing class','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,16,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'10min',NULL,NULL,'brain-overload',0,'HTML'),(746,'S1701','S1701','squid','<p>It\'s confusing to have a class member with the same name as a method in the class.</p>\n\n<p>Typically this situation indicates that the method is poorly named; method names should be action-oriented, and thus contain a verb, which is unlikely in the case where both a method and a member have the same name. However, renaming a public method could be disruptive to callers. Therefore renaming the member is the recommended action.</p>\n\n<h2>Noncompliant Code Sample</h2>\n<pre>\npublic class Foo {\n\n  private string fiz;\n  public String fiz() {\n    // do something...\n  }\n\n  private void doSomething() {\n\n    String tmp = fiz; // is this what was intended? Should this have been a call to fiz()?\n\n  }\n}\n</pre>\n\n<h2>Compliant Solution</h2>\n<pre>\npublic class Foo {\n\n  private string fizbah; // member has been renamed\n  public String fiz() {\n    // do something...\n  }\n\n  private void doSomething() {\n\n    String tmp = fiz; // results in a compile error\n    String tmp2 = fiz(); // no question now what was intended\n  }\n}\n</pre>',2,NULL,'Fields should not duplicate method names','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,43,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'10min',NULL,NULL,'brain-overload',0,'HTML'),(747,'EmptyStatementUsageCheck','EmptyStatementUsageCheck','squid','<p>Empty statements, i.e. <code>;</code>, are usually introduced by mistake, for example because:</p>\n\n<ul>\n  <li>It was meant to be replaced by an actual statement, but this was forgotten.</li>\n  <li>There was a typo which lead to the semicolon to be doubled, i.e. <code>;;</code>.</li>\n</ul>\n\n<p>Examples:</p>\n\n<pre>\nvoid doSomething() {\n  ;                                                       // Non-Compliant - was used as a kind of TODO marker\n}\n</pre>\n\n<pre>\nSystem.out.println(\"Hello, world!\");;                     // Non-Compliant - double ;\n</pre>\n\n<p>Rarely, they are used on purpose, as the body of a loop:</p>\n\n<pre>\nfor (int i = 0; i < 3; System.out.println(i), i++);       // Non-Compliant\n</pre>\n\n<p>It is a bad practice to have side-effects outside of the loop body, and therefore that code should be refactored into:</p>\n\n<pre>\nfor (int i = 0; i < 3; i ++) {                            // Compliant\n  System.out.println(i);\n}\n</pre>',2,NULL,'Empty statements should be removed','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,42,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'10min',NULL,NULL,NULL,0,'HTML'),(748,'S00107','S00107','squid','<p>\nA long parameter list can indicate that a new structure should be created to wrap the numerous parameters or that the method is doing too many things.\n</p>',2,NULL,'Methods should not have too many parameters','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,51,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'1h',NULL,NULL,'brain-overload',0,'HTML'),(749,'S1141','S1141','squid','<p>\nNesting <code>try-catch</code> blocks severely impacts the readability of source code because it makes it to difficult to understand which block will catch which exception.\n</p>\n\n<p>The following code:</p>\n\n<pre>\ntry {\n  try {                                     // Non-Compliant\n    doSomething();\n  } catch (RuntimeException e) {\n    /* Ignore */\n  }\n\n  doSomethingElse();\n} catch (Exception e) {\n  /* ... */\n}\n</pre>\n\n<p>should be refactored into:</p>\n\n<pre>\ntry {\n  dedicatedMethod();                        // Compliant\n  doSomethingElse();\n} catch (Exception e) {\n  /* ... */\n}\n\n/* ... */\n\nprivate void dedicatedMethod() {\n  try {                                     // Compliant\n    doSomething();\n  } catch (RuntimeException e) {\n    /* Ignore */\n  }\n}\n</pre>',2,NULL,'Try-catch blocks should not be nested','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,15,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'20min',NULL,NULL,NULL,0,'HTML'),(750,'S881','S881','squid','<p>\nThe use of increment and decrement operators in combination with other arithmetic operators is not recommended, because:\nIt can significantly impair the readability of the code.\nIt introduces additional side effects into a statement, with the potential for undefined behavior.\nIt is safer to use these operators in isolation from any other arithmetic operators.\n</p>\n\n<h2>Noncompliant Code Example</h2>\n\n<pre>\nu8a = ++u8b + u8c--;\nfoo = bar++ / 4;\n</pre>\n\n<h2>Compliant Solution</h2>\n<p>The following sequence is clearer and therefore safer:</p>\n\n<pre>\n++u8b;\nu8a = u8b + u8c;\nu8c--;\nfoo = bar / 4;\nbar++;\n</pre>',2,NULL,'Increment (++) and decrement (--) operators should not be mixed with other operators in an expression','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,43,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'5min',NULL,NULL,NULL,0,'HTML'),(751,'S1142','S1142','squid','<p>\nHaving too many return statements in a method increases the method\'s essential complexity because the flow of execution is broken each time a return statement is encountered.\nThis makes it harder to read and understand the logic of the method.\n</p>\n\n<p>\nThe following code snippet illustrates this rule with the default threshold of 3:\n</p>\n\n<pre>\npublic boolean myMethod() { // Non-Compliant as there are 4 return statements\n  if (condition1) {\n    return true;\n  } else {\n    if (condition2) {\n      return false;\n    } else {\n      return true;\n    }\n  }\n  return false;\n}\n</pre>',2,NULL,'Methods should not contain too many return statements','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,51,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'20min',NULL,NULL,'brain-overload',0,'HTML'),(752,'S1143','S1143','squid','<p>\nReturning from a <code>finally</code> block suppresses the propagation of any unhandled <code>Throwable</code> which was thrown in the <code>try</code> or <code>catch</code> block.\n</p>\n\n<p>\nThe following code snippet illustrates this rule.\nThe developer expects to get \"ERROR\" in the console whereas \"OK\" is displayed.\n</p>\n\n<pre>\npublic static void main(String[] args) {\n  try {\n    doSomethingWhichThrowsException();\n    System.out.println(\"OK\");\n  } catch (RuntimeException e) {\n    System.out.println(\"ERROR\");\n  }\n}\n\npublic static void doSomethingWhichThrowsException() {\n  try {\n    throw new RuntimeException();\n  } finally {\n    /* ... */\n    return;                                        // Non-Compliant - prevents the RuntimeException from being propagated\n  }\n}\n</pre>',4,NULL,'Return statements should not occur in finally blocks','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,42,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'20min',NULL,NULL,'bug',0,'HTML'),(753,'S00108','S00108','squid','<p>\nMost of the time a block of code is empty when a piece of code is really missing.\nSo such empty block must be either filled or removed.\nWhen a block contains a comment, this block is not considered to be empty.\n</p>\n\n<p>The following code snippet illustrates this rule:</p>\n\n<pre>\nvoid doSomething() {\n  for (int i = 0; i < 42; i++)        // Non-Compliant\n  {\n  }\n  for (int i = 0; i < 42; i++);       // Compliant\n\n  if (myVar == 4)                     // Compliant - contains a comment\n  {\n    // Do nothing because of X and Y\n  }\n  else                                // Compliant\n  {\n    doSomething();\n  }\n\n  try                                 // Non-Compliant\n  {\n  }\n  catch (Exception e)                 // Compliant\n  {\n    // Ignore\n  }\n}\n</pre>',2,NULL,'Nested blocks of code should not be left empty','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,43,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'20min',NULL,NULL,'bug',0,'HTML'),(754,'S00103','S00103','squid','<p>\nHaving to scroll horizontally makes it harder to get a quick overview and understanding of any piece of code.\n</p>',1,NULL,'Lines of code should not be too long','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,15,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'1min',NULL,NULL,'convention',0,'HTML'),(755,'RightCurlyBraceStartLineCheck','RightCurlyBraceStartLineCheck','squid','<p>\nSharing some coding conventions is a key point to make it possible for a team to efficiently collaborate.\nThis rule make it mandatory to place right curly braces at the beginning of lines of code.\n</p>\n\n<p>\nThe following code snippet illustrates this rule:\n</p>\n\n<pre>\npublic void myMethod() {\n  if(something) {\n    executeTask();}                   // Non-Compliant\n  else if (somethingElse) {\n    doSomethingElse();\n  }                                   // Compliant\n\n  try {\n    generateOrder();\n  } finally {                         // Compliant\n    closeConnection();\n  }                                   // Compliant\n\n  try {\n    generateOrder();\n  } finally {                         // Compliant\n    closeConnection(); }              // Non-Compliant\n}\n</pre>',2,NULL,'Right curly braces should be located at the beginning of lines of code','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,15,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'1min',NULL,NULL,'convention',0,'HTML'),(756,'S1145','S1145','squid','<p>\nIf statements with conditions that are always either true or false are not required, and make the code less readable.\n</p>\n\n<p>The following code:</p>\n\n<pre>\npublic void myMethod() {\n  if (true) {                   // Non-Compliant\n    doSomething();\n  }\n}\n</pre>\n\n<p>should be refactored into:</p>\n\n<pre>\npublic void myMethod() {\n  doSomething();                // Compliant\n}\n</pre>\n\n<p>and the following code:</p>\n\n<pre>\npublic void myMethod() {\n  if (false) {                  // Non-Compliant\n    doSomething();\n  }\n}\n</pre>\n\n<p>should be refactored into:</p>\n\n<pre>\npublic void myMethod() {        // Compliant\n}\n</pre>',2,NULL,'If statement conditions should not always evaluate to \"true\" or to \"false\"','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,16,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'10min',NULL,NULL,NULL,0,'HTML'),(757,'S00105','S00105','squid','<p>\nDevelopers should not need to configure the tab width of their text editors in order to be able to read source code.\nSo the use of tabulation character must be banned.\n</p>',1,NULL,'Tabulation characters should not be used','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,15,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'2min',NULL,NULL,'convention',0,'HTML'),(758,'S1147','S1147','squid','<p>\nCalling <code>System.exit(int status)</code> or <code>Rutime.getRuntime().exit(int status)</code> leads to the shut down of the entire Java virtual machine.\nIt should be used with care, when stopping the whole Java process is meant.\nFor instance, it should not be called from applications running in a J2EE container.\n</p>\n\n<h2>Noncompliant Code Example</h2>\n\n<pre>\nSystem.exit(0);\nRuntime.getRuntime().exit(0);\n</pre>',3,NULL,'System.exit(...) and Runtime.getRuntime().exit(...) should not be called','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,38,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'20min',NULL,NULL,NULL,0,'HTML'),(759,'S1301','S1301','squid','<p>\n<code>switch</code> statements are useful when there are many different cases depending on the value of the same expression.\nFor just one or two cases however, the code will be more readable with <code>if</code> statements.\n</p>\n\n<h2>Noncompliant Code Example</h2>\n<pre>\nswitch (variable) {\n  case 0:\n    doSomething();\n    break;\n  default:\n    doSomethingElse();\n    break;\n}\n</pre>\n\n<h2>Compliant Solution</h2>\n<pre>\nif (variable == 0) {\n  doSomething();\n} else {\n  doSomethingElse();\n}\n</pre>',1,NULL,'\"switch\" statements should have at least 3 cases','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,15,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'10min',NULL,NULL,NULL,0,'HTML'),(760,'S00104','S00104','squid','<p>\nA source file that grows too much tends to aggregate too many responsibilities and inevitably becomes harder to understand and therefore to maintain.\nAbove a specific threshold, it is strongly advised to refactor it into smaller pieces of code which focus on well defined tasks.\nThose smaller files will not only be easier to understand but also probably easier to test.\n</p>',2,NULL,'Files should not have too many lines','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,15,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'1h',NULL,NULL,'brain-overload',0,'HTML'),(761,'S1148','S1148','squid','<p>\n<code>Throwable.printStackTrace(...)</code> prints a throwable and its stack trace to some stream.\n</p>\n\n<p>Loggers should be used instead to print throwables, as they have many advantages:</p>\n<ul>\n  <li>Users are able to easily retrieve the logs.</li>\n  <li>The format of log messages is uniform and allow users to browse the logs easily.</li>\n</ul>\n\n<p>The following code:</p>\n\n<pre>\ntry {\n  /* ... */\n} catch(Exception e) {\n  e.printStackTrace();        // Non-Compliant\n}\n</pre>\n\n<p>should be refactored into:</p>\n\n<pre>\ntry {\n  /* ... */\n} catch(Exception e) {\n  LOGGER.log(\"context\", e);   // Compliant\n}\n</pre>',3,NULL,'Throwable.printStackTrace(...) should never be called','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,40,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'10min',NULL,NULL,'error-handling',0,'HTML'),(762,'S00121','S00121','squid','<p>\nNot using curly braces could be error-prone in some cases. For instance in the following example, the two statements seems to be attached to the if statement whereas this is the case only for the first one:\n</p>\n<pre>\nif (condition) // Non-Compliant\n  executeSomething();\n  checkSomething();\n\nif (condition) { // Compliant\n  executeSomething();\n}\ncheckSomething();\n</pre>',2,NULL,'if/else/for/while/do statements should always use curly braces','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,15,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'10min',NULL,NULL,'convention',0,'HTML'),(763,'S00120','S00120','squid','<p>\nSharing some naming conventions is a key point to make it possible for a team to efficiently collaborate. This rule allows to check that all package names match a provided regular expression.\n</p>\n\n<p>\nThe following code snippet illustrates this rule when the regular expression value is \"^[a-z]+(\\\\.[a-z][a-z0-9]*)*$\":\n</p>\n<pre>\npackage org.Example; // Non-Compliant\n\npackage org.example; // Compliant\n</pre>',2,NULL,'Package names should comply with a naming convention','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,15,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'20min',NULL,NULL,'convention',0,'HTML'),(764,'S109','S109','squid','<p>A magic number is a number that comes out of nowhere, and is directly used in a statement. Magic numbers are often used, for instance to limit the number of iterations of a loops, to test the value of a property, etc.</p>\n\n<p>Using magic numbers may seem obvious and straightforward when you\'re writing a piece of code, but they are much less obvious and straightforward at debugging time.</p>\n\n<p>That is why magic numbers must be demystified by first being assigned to clearly named constants before being used.</p>\n\n<p>-1, 0 and 1 are not considered magic numbers.</p>\n\n<h2>Noncompliant Code Sample</h2>\n\n<pre>\npublic static void doSomething() {\n  for(int i = 0; i < 4; i++){                 //Non-Compliant, 4 is a magic number\n  ...\n  }\n}\n</pre>\n\n<h2>Compliant Solution</h2>\n\n<pre>\npublic static final int NUMBER_OF_CYCLES = 4;\npublic static void doSomething() {\n  for(int i = 0; i < NUMBER_OF_CYCLES ; i++){   //Compliant\n    ...\n  }\n}\n</pre>',1,NULL,'Magic numbers should not be used','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,35,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'5min',NULL,NULL,NULL,0,'HTML'),(765,'S106','S106','squid','<p>Two important requirements must be fulfilled when logging messages:</p>\n\n<ul>\n  <li>The user must be able to easily retrieve the logs.</li>\n  <li>The format of all messages must be uniform to enable users to easily browse them.</li>\n</ul>\n\n<p>\nIf a program directly writes to the standard output, there is absolutely no way to comply with these requirements.\nThat\'s why defining and using a dedicated logger is highly recommended.\n</p>\n\n<p>\nThe following code snippet illustrates this rule:\n</p>\n\n<pre>\nSystem.out.println(\"My Message\");  // Non-Compliant\n\nlogger.log(\"My Message\");          // Compliant\n</pre>',2,NULL,'System.out and System.err should not be used as loggers','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,19,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'10min',NULL,NULL,NULL,0,'HTML'),(766,'S00122','S00122','squid','<p>\nFor better readability, do not put more than one statement on a single line.\n</p>\n\n<p>\nThe following code snippet illustrates this rule:\n</p>\n<pre>\na = \"something\"; b = \"somethingElse\"; // Non-Compliant\nc = \"anotherThing\"; // Compliant\n</pre>',2,NULL,'Statements should be on separate lines','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,15,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'1min',NULL,NULL,'convention',0,'HTML'),(767,'S1656','S1656','squid','<p>There is no reason to re-assign a variable to itself. Either this statement is redundant and should be removed, or the re-assignment is a mistake and some other value was intended for the assignment instead.</p>\n\n<h2>Noncompliant Code Example</h2>\n<pre>\npublic void setName(String name) {\n  name = name;\n}\n</pre>\n\n<h2>Compliant Solution</h2>\n<pre>\npublic void setName(String name) {\n  this.name = name;\n}\n</pre>',2,NULL,'Variables should not be self-assigned','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,39,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'3min',NULL,NULL,'bug',0,'HTML'),(768,'ParsingError','ParsingError','squid','<p>\nWhen the Java parser fails, it is possible to record the failure as an issue on the file.\nThis way, not only it is possible to track the number of files that do not parse but also to easily find out why they do not parse.\n</p>',2,NULL,'Java parser failure','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'HTML'),(769,'ObjectFinalizeCheck','ObjectFinalizeCheck','squid','<p>\nAccording to the official Java documentation, <code>Object.finalize()</code> is called by the garbage collector on an object when garbage collection determines that there are no more references to the object.\nCalling this method explicitly breaks this contract and so is misleading.\n</p>\n\n<p>\nThe following code snippet illustrates this rule:\n</p>\n\n<pre>\npublic void dispose() throws Throwable {\n  this.finalize();                       // Non-Compliant\n}\n</pre>',3,NULL,'The Object.finalize() method should never be called','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,38,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'20min',NULL,NULL,'pitfall',0,'HTML'),(770,'S00118','S00118','squid','<p>\nSharing some naming conventions is a key point to make it possible for a team to efficiently collaborate.\nThis rule allows to check that all abstract class names match a provided regular expression and non-abstract classes not match.\n</p>\n\n<p>\nThe following code snippet illustrates this rule when the regular expression value is \"^Abstract[A-Z][a-zA-Z0-9]*$\":\n</p>\n<pre>\nabstract class MyClass { // Non-Compliant\n}\n\nclass AbstractLikeClass { // Non-Compliant\n}\n\nabstract class AbstractClass { // Compliant\n}\n</pre>',2,NULL,'Abstract class names should comply with a naming convention','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,15,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'20min',NULL,NULL,'convention',0,'HTML'),(771,'S00117','S00117','squid','<p>\nSharing some naming conventions is a key point to make it possible for a team to efficiently collaborate. This rule allows to check that all local variable and method parameter names match a provided regular expression.\n</p>\n\n<p>\nThe following code snippet illustrates this rule when the regular expression value is \"^[a-z][a-zA-Z0-9]*$\":\n</p>\n\n<pre>\npublic class MyClass {\n  public void method() {\n    int FIRST;                      // Non-Compliant\n    int second;                     // Compliant\n  }\n\n  public void method2(int VALUE) {  // Non-Compliant\n  }\n\n  public void method3(int value) {  // Compliant\n  }\n}\n</pre>',2,NULL,'Local variable and method parameter names should comply with a naming convention','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,15,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'20min',NULL,NULL,'convention',0,'HTML'),(772,'S1132','S1132','squid','<p>\nIt is preferable to place string literals on the left-hand side of an <code>equals()</code> or <code>equalsIgnoreCase()</code> method call.\nThis prevents null pointer exceptions from being raised, as a string literal can never be null by definition.\n</p>\n\n<p>The following code:</p>\n\n<pre>\nString myString = null;\n\nSystem.out.println(\"Equal? \" + myString.equals(\"foo\"));                        // Non-Compliant - will raise a NPE\nSystem.out.println(\"Equal? \" + (myString != null && myString.equals(\"foo\")));  // Non-Compliant - null check could be removed\n</pre>\n\n<p>should be refactored into:</p>\n\n<pre>\nSystem.out.println(\"Equal?\" + \"foo\".equals(myString));                         // Compliant - properly deals with the null case\n</pre>',2,NULL,'Strings literals should be placed on the left side when checking for equality','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,42,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'10min',NULL,NULL,NULL,0,'HTML'),(773,'S00119','S00119','squid','<p>\nSharing some naming conventions is a key point to make it possible for a team to efficiently collaborate. This rule allows to check that all type parameter names match a provided regular expression.\n</p>\n\n<p>\nThe following code snippet illustrates this rule when the regular expression value is \"^[A-Z]$\":\n</p>\n<pre>\nclass MyClass&lt;TYPE&gt; { // Non-Compliant\n  &lt;TYPE&gt; void addAll(Collection&lt;TYPE&gt; c) { // Non-compliant\n  }\n}\n\npublic class MyClass&lt;T&gt; { // Compliant\n  &lt;T&gt; void addAll(Collection&lt;T&gt; c) { // Compliant\n  }\n}\n</pre>',2,NULL,'Type parameter names should comply with a naming convention','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,15,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'20min',NULL,NULL,'convention',0,'HTML'),(774,'AssignmentInSubExpressionCheck','AssignmentInSubExpressionCheck','squid','<p>\nAssignments within sub-expressions are hard to spot and therefore make the code less readable.\nIt is also a common mistake to write <code>=</code> when <code>==</code> was meant.\nIdeally, expressions should not have side-effects.\n</p>\n\n<h2>Noncompliant Code Example</h2>\n\n<pre>\nSystem.out.println(i = 42);\n</pre>\n\n<h2>Compliant Solution</h2>\n\n<pre>\nSystem.out.println(i == 42);\n</pre>\n\n<p>or:</p>\n\n<pre>\ni = 42;\nSystem.out.println(i);\n</pre>\n\n<h2>Exceptions</h2>\n<p>Assignments enclosed in relational expressions are allowed.</p>\n\n<pre>\nBufferedReader br = new BufferedReader(/* ... */);\nString line;\nwhile ((line = br.readLine()) != null) {\n  /* ... */\n}\n</pre>',2,NULL,'Assignments should not be made from within sub-expressions','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,42,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'10min',NULL,NULL,NULL,0,'HTML'),(775,'S1133','S1133','squid','<p>\nThis rule is meant to be used as a way to track code which is marked as being deprecated.\nDeprecated code should eventually be removed.\n</p>\n\n<p>\nThe following code illustrates this rule:\n</p>\n\n<pre>\nclass Foo {\n  /**\n    * @deprecated\n    */\n  public void foo() {    // Non-Compliant\n  }\n\n  @Deprecated            // Non-Compliant\n  public void bar() {\n  }\n\n  public void baz() {    // Compliant\n  }\n}\n</pre>',0,NULL,'Deprecated code should be removed eventually','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,16,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'1h',NULL,NULL,NULL,0,'HTML'),(776,'S00114','S00114','squid','<p>\nSharing some naming conventions is a key point to make it possible for a team to efficiently collaborate. This rule allows to check that all interface names match a provided regular expression.\n</p>\n\n<p>\nThe following code snippet illustrates this rule when the regular expression value is \"^[A-Z][a-zA-Z0-9]*$\":\n</p>\n<pre>\npublic interface MyFirstInterface {...} // Compliant\npublic interface mySecondInterface {...} // Non-Compliant\n</pre>',2,NULL,'Interface names should comply with a naming convention','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,15,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'20min',NULL,NULL,'convention',0,'HTML'),(777,'S1134','S1134','squid','<p>\n<code>FIXME</code> tags are commonly used to mark places where a bug is suspected, but which the developer wants to deal with later.\nSometimes the developer will not have the time or will simply forget to get back to that tag.\nThis rule is meant to track those tags, and ensure that they do not go unnoticed.\n</p>\n\n<p>The following code illustrates this rule:</p>\n\n<pre>\nint divide(int numerator, int denominator) {\n  return numerator / denominator;              // FIXME denominator = 0, Non-Compliant\n}\n</pre>',2,NULL,'FIXME tags should be handled','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,42,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'20min',NULL,NULL,NULL,0,'HTML'),(778,'S00113','S00113','squid','<p>\nSome tools such as Git work better when files end with an empty line.\nThis rule simply generates an issue if it is missing.\n</p>\n\n<p>For example, a Git diff look like:</p>\n\n<pre>\n+class Test {\n+}\n\\ No newline at end of file\n</pre>\n\n<p>if the empty line is missing at the end of the file.</p>',1,NULL,'Files should contain an empty new line at the end','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,9,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'5min',NULL,NULL,'convention',0,'HTML'),(779,'S1135','S1135','squid','<p>\n<code>TODO</code> tags are commonly used to mark places where some more code is required, but which the developer wants to implement later.\nSometimes the developer will not have the time or will simply forget to get back to that tag.\nThis rule is meant to track those tags, and ensure that they do not go unnoticed.\n</p>\n\n<p>The following code illustrates this rule:</p>\n\n<pre>\nvoid doSomething() {\n  // TODO\n}\n</pre>',0,NULL,'TODO tags should be handled','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,16,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'20min',NULL,NULL,NULL,0,'HTML'),(780,'S00116','S00116','squid','<p>\nSharing some naming conventions is a key point to make it possible for a team to efficiently collaborate. This rule allows to check that all field names match a provided regular expression.\n</p>\n\n<p>\nThe following code snippet illustrates this rule when the regular expression value is \"^[a-z][a-zA-Z0-9]*$\":\n</p>\n<pre>\npublic class MyClass {\n  public int FIRST = 1; // Non-Compliant\n  public int second = 2; // Compliant\n}\n</pre>',2,NULL,'Field names should comply with a naming convention','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,15,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'20min',NULL,NULL,'convention',0,'HTML'),(781,'S00115','S00115','squid','<p>\nSharing some naming conventions is a key point to make it possible for a team to efficiently collaborate. This rule allows to check that all constant names match a provided regular expression.\n</p>\n\n<p>\nThe following code snippet illustrates this rule when the regular expression value is \"^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$\":\n</p>\n<pre>\npublic class MyClass {\n  public static final int first = 1; // Non-Compliant\n  public static final int SECOND = 2; // Compliant\n}\n\npublic enum MyEnum {\n  first, // Non-Compliant\n  SECOND; // Compliant\n}\n</pre>',2,NULL,'Constant names should comply with a naming convention','READY','java','2015-04-06 11:18:27','2015-04-06 11:18:27',NULL,NULL,NULL,NULL,NULL,15,NULL,'CONSTANT_ISSUE',NULL,NULL,NULL,'20min',NULL,NULL,'convention',0,'HTML');

--
