[Fb-contrib-commit] fb-contrib/htdocs blend.jpg,NONE,1.1 index.html,1.23,1.24
Brought to you by:
dbrosius
|
From: Dave B. <dbr...@us...> - 2005-11-10 06:36:59
|
Update of /cvsroot/fb-contrib/fb-contrib/htdocs In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25331/htdocs Modified Files: index.html Added Files: blend.jpg Log Message: make it slightly less fugly Index: index.html =================================================================== RCS file: /cvsroot/fb-contrib/fb-contrib/htdocs/index.html,v retrieving revision 1.23 retrieving revision 1.24 diff -u -d -r1.23 -r1.24 --- index.html 10 Nov 2005 03:17:13 -0000 1.23 +++ index.html 10 Nov 2005 06:36:45 -0000 1.24 @@ -4,108 +4,113 @@ <title>fb-contrib: A FindBugs auxiliary detector plugin</title> </head> <body background> - <h1>fb-contrib: A FindBugs auxiliary detector plugin</h1> - - <p>fb-contrib is an extra detector plugin to be used with the static bug - finder FindBugs (findbugs.sourceforge.net). Just download the fb-contrib.jar - file, and place it in your FindBugs' plugin directory. FindBugs will - automatically pick up the jar file, and incorporate these detectors with its - own. - </p> - <a href="http://www.sourceforge.net/projects/fb-contrib">Project Page</a> + <div style="position:absolute;top:0;left:0;width:256;height:100%;z-index:1;background-image:url(blend.jpg);"> + </div> - <hr/> - Detectors added in CVS<br/> - Note: these detectors are still in testing - <ul> - <li><b>Abnormal Finally Block Return</b><br/> - Finds methods that return or throw an exception from a finally block. Since a finally block is - executed after any return or throw statements that are present in the try or catch block, these exit - values are swallowed by the finally block's actions.</li> - <li><b>Non Collections Method Use</b><br/> - Finds calls to collections objects using methods that are not defined in the Collections interfaces, - but that have equivalent methods defined in such. By using the new methods, it allows for the - replacement of concrete classes with interfaces, and simplifies changing collection types if - desired.</li> - <li><b>Confusing Autoboxed Overloading</b><br/> - Finds classes that define overloaded methods where the only difference is a parameter being - of type java.lang.Character, and int, long, float or double. Due to autoboxing, one might conclude - that a parameter of 'a' would autobox to Character, but would instead be cast to a double.</li> - </ul> - <hr/> - Detectors added in v1.4.0<br/> - <ul> - <li><b>Final Parameters</b><br/> - Finds parameters that could be marked as final, but aren't. Doing so helps document the method, keeps - unwanted changes to creep in, and may help the jvm jit compiler to optimize better.</li> - <li><b>Abstract Class Empty Methods</b><br/> - Finds empty methods, or methods that just throw an exception in abstract classes. In these cases, it - probably is more correct to just define the method to be abstract as well, so that proper subclass - implementation is enforced.</li> - <li><b>Manual Array Copy</b><br/> - Finds methods that copy elements from one array to another manually using a loop. It is better - performing to use System.arraycopy, as this method is native.</li> - <li><b>Floating Point Loops</b><br/> - Finds methods that use floating point variables as the index to loops. Since floating point math is inprecise, - errors will accumulate each time through the loop, making the logic suspect. It is better to use an - integer index, and calculate the desired floating point value from this integer.</li> - </ul> - <hr/> - Detectors added in v1.2.0<br/> - <ul> - <li><b>Parallel Lists</b><br/> - Finds classes that maintain two or more lists or arrays that appear to share a one-to-one relationship - through a common index. It is usually better to create a separate class that holds all corresponding attributes, - and add instances of this class to just one list or array.</li> - <li><b>Dubious List Collection</b><br/> - Finds fields that are implementations of java.util.List, but that are used in a set-like fashion. - Since lookup type operations are performed using a linear search for Lists, the performance for large - Lists will be poor. Consideration should be made as to whether these fields should be sets.</li> - <li><b>Partially Constructed Object Access</b><br/> - Finds constructors that call non-final methods in non-final classes. If this class is derived from, and the - method is overridden, then that method will be executing on an object that hasn't been constructed in regards - to the subclass implementation. These methods should probably be defined as final.</li> - <li><b>Literal String Comparison</b><br/> - Finds methods that call the equals or compareTo methods on a String variable passing in a String literal. - A NullPointerException may occur if the string variable is null. If instead the method was called on - the string literal, and the variable was passed as an argument, this exception could never happen</li> - </ul> - <hr/> - Detectors added in v1.0.0<br/> - <ul> - <li><b>Overly Concrete Parameters</b><br/> - Finds parameters to methods that are defined as concrete classes, - when they're usage pattern can be defined by an implemented interface. - By switching to the interface, you can reduce coupling, which helps making - the code more testable and changeable.</li> - <li><b>List Indexed Iterating</b><br/> - Looks for uses of using loop indexed variables to 'iterate' over a List by calling get(i) - each time thru the loop. Depending on the List implementation, using Iterators can be - significantly faster. Using Iterators also makes it easier to substitute other collection types.</li> - <li><b>Unrelated Collection Contents</b><br/> - Looks for collections that hold objects that are unrelated by class or interface inheritance, other - than java.lang.Object. Doing so, leads to brittle code, either by 'encoding' type knowledge in the position - of an element, or using instanceof tests. It is usually better to create a separate class, add the individual - types as members to it, and add an instance of this class to the collection.</li> - <li><b>Declared Runtime Exception</b><br/> - Finds methods that declare RuntimeExceptions in their throws clause. While not illegal, - this may indicate a misunderstanding as to how unchecked exceptions are handled. - If is felt that a RuntimeException is so prevalent that it should be declared, it - is probably a better idea to prevent the occurance in code.</li> - </ul> - <hr/> - Detectors added in v0.9.3 - <ul> - <li><b>Inefficient String Buffering</b><br/> - Finds Concatenation inside of a StringBuffer.append call, which - creates temporary StringBuffers.</li> - <li><b>Synchronized Collection Iterators</b><br/> - Finds use of iterators on collections built from Collection.synchronizedXXX() - calls. As iterators are by default not multithread safe, there use with a - synchronized collections seems dubious.</li> - <li><b>Cyclomatic Complexity</b><br/> - Finds methods that are overly complex based on the McCabe algorithm for - counting number of unique branches in the method</li> - </ul> + <div style="position:absolute;top:0;left:10;right=100%;bottom=100%;z-index:2;"> + <h1>fb-contrib: A FindBugs auxiliary detector plugin</h1> + + <p>fb-contrib is an extra detector plugin to be used with the static bug + finder FindBugs (findbugs.sourceforge.net). Just download the fb-contrib.jar + file, and place it in your FindBugs' plugin directory. FindBugs will + automatically pick up the jar file, and incorporate these detectors with its + own. + </p> + <a href="http://www.sourceforge.net/projects/fb-contrib">Project Page</a> + + <hr/> + Detectors added in CVS<br/> + Note: these detectors are still in testing + <ul> + <li><b>Abnormal Finally Block Return</b><br/> + Finds methods that return or throw an exception from a finally block. Since a finally block is + executed after any return or throw statements that are present in the try or catch block, these exit + values are swallowed by the finally block's actions.</li> + <li><b>Non Collections Method Use</b><br/> + Finds calls to collections objects using methods that are not defined in the Collections interfaces, + but that have equivalent methods defined in such. By using the new methods, it allows for the + replacement of concrete classes with interfaces, and simplifies changing collection types if + desired.</li> + <li><b>Confusing Autoboxed Overloading</b><br/> + Finds classes that define overloaded methods where the only difference is a parameter being + of type java.lang.Character, and int, long, float or double. Due to autoboxing, one might conclude + that a parameter of 'a' would autobox to Character, but would instead be cast to a double.</li> + </ul> + <hr/> + Detectors added in v1.4.0<br/> + <ul> + <li><b>Final Parameters</b><br/> + Finds parameters that could be marked as final, but aren't. Doing so helps document the method, keeps + unwanted changes to creep in, and may help the jvm jit compiler to optimize better.</li> + <li><b>Abstract Class Empty Methods</b><br/> + Finds empty methods, or methods that just throw an exception in abstract classes. In these cases, it + probably is more correct to just define the method to be abstract as well, so that proper subclass + implementation is enforced.</li> + <li><b>Manual Array Copy</b><br/> + Finds methods that copy elements from one array to another manually using a loop. It is better + performing to use System.arraycopy, as this method is native.</li> + <li><b>Floating Point Loops</b><br/> + Finds methods that use floating point variables as the index to loops. Since floating point math is inprecise, + errors will accumulate each time through the loop, making the logic suspect. It is better to use an + integer index, and calculate the desired floating point value from this integer.</li> + </ul> + <hr/> + Detectors added in v1.2.0<br/> + <ul> + <li><b>Parallel Lists</b><br/> + Finds classes that maintain two or more lists or arrays that appear to share a one-to-one relationship + through a common index. It is usually better to create a separate class that holds all corresponding attributes, + and add instances of this class to just one list or array.</li> + <li><b>Dubious List Collection</b><br/> + Finds fields that are implementations of java.util.List, but that are used in a set-like fashion. + Since lookup type operations are performed using a linear search for Lists, the performance for large + Lists will be poor. Consideration should be made as to whether these fields should be sets.</li> + <li><b>Partially Constructed Object Access</b><br/> + Finds constructors that call non-final methods in non-final classes. If this class is derived from, and the + method is overridden, then that method will be executing on an object that hasn't been constructed in regards + to the subclass implementation. These methods should probably be defined as final.</li> + <li><b>Literal String Comparison</b><br/> + Finds methods that call the equals or compareTo methods on a String variable passing in a String literal. + A NullPointerException may occur if the string variable is null. If instead the method was called on + the string literal, and the variable was passed as an argument, this exception could never happen</li> + </ul> + <hr/> + Detectors added in v1.0.0<br/> + <ul> + <li><b>Overly Concrete Parameters</b><br/> + Finds parameters to methods that are defined as concrete classes, + when they're usage pattern can be defined by an implemented interface. + By switching to the interface, you can reduce coupling, which helps making + the code more testable and changeable.</li> + <li><b>List Indexed Iterating</b><br/> + Looks for uses of using loop indexed variables to 'iterate' over a List by calling get(i) + each time thru the loop. Depending on the List implementation, using Iterators can be + significantly faster. Using Iterators also makes it easier to substitute other collection types.</li> + <li><b>Unrelated Collection Contents</b><br/> + Looks for collections that hold objects that are unrelated by class or interface inheritance, other + than java.lang.Object. Doing so, leads to brittle code, either by 'encoding' type knowledge in the position + of an element, or using instanceof tests. It is usually better to create a separate class, add the individual + types as members to it, and add an instance of this class to the collection.</li> + <li><b>Declared Runtime Exception</b><br/> + Finds methods that declare RuntimeExceptions in their throws clause. While not illegal, + this may indicate a misunderstanding as to how unchecked exceptions are handled. + If is felt that a RuntimeException is so prevalent that it should be declared, it + is probably a better idea to prevent the occurance in code.</li> + </ul> + <hr/> + Detectors added in v0.9.3 + <ul> + <li><b>Inefficient String Buffering</b><br/> + Finds Concatenation inside of a StringBuffer.append call, which + creates temporary StringBuffers.</li> + <li><b>Synchronized Collection Iterators</b><br/> + Finds use of iterators on collections built from Collection.synchronizedXXX() + calls. As iterators are by default not multithread safe, there use with a + synchronized collections seems dubious.</li> + <li><b>Cyclomatic Complexity</b><br/> + Finds methods that are overly complex based on the McCabe algorithm for + counting number of unique branches in the method</li> + </ul> + </div> </body> </html> \ No newline at end of file --- NEW FILE: blend.jpg --- (This appears to be a binary file; contents omitted.) |