Hi all,
We've been talking a bit within OpenGeo about starting to use Findbugs[1]
to help identify and eventually prevent some bugs in GeoServer. This tool
automatically detects potential bugs by analyzing Java bytecode and
flagging common error patterns. For example,
SecuredFeatureCollection.addAll calls itself in an infinite recursive loop
when the write query is not Filter.EXCLUDE[2]. If you want to see some
other flagged code I have generated a sample HTML report for the main
module[3].
You can run reports yourself with maven: "mvn findbugs:findbugs
findbugs:gui" will generate an HTML report and fire up a graphical browser.
There's also an eclipse plugin[4].
What I'd like to do is set up the Hudson server to run with a constrained
set of rules, and notify the developer list when new violations are
detected. We can configure Findbugs to filter its output dramatically at
first, and relax the filters as more violations are eliminated. For
example, there are only three violations of the "infinite recursion"
pattern in the GeoServer codebase, so we could correct those and then set
Hudson up to watch for new violations. There's already a nice plugin for
Hudson [5] to watch Findbugs output and help you compare it across builds.
Thoughts?
--
David Winslow
OpenGeo - http://opengeo.org/
[1]: http://findbugs.sourceforge.net/
[2]:
https://github.com/geoserver/geoserver/blob/master/src/main/src/main/java/org/geoserver/security/decorators/SecuredFeatureCollection.java#L118-128
[3]: http://dev.opengeo.org/~dwinslow/fb/main-full.html
[4]: http://findbugs.sourceforge.net/manual/eclipse.html . See
http://dev.opengeo.org/~dwinslow/fb/findbugs-eclipse.png for a
screencapture.
[5]: http://wiki.hudson-ci.org/display/HUDSON/FindBugs+Plugin
------------------------------------------------------------------------------
Virtualization & Cloud Management Using Capacity Planning
Cloud computing makes use of virtualization - but cloud computing
also focuses on allowing computing to be delivered as a service.
http://www.accelacomm.com/jaw/sfnl/114/51521223/
_______________________________________________
Geoserver-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geoserver-devel