|Re: [dsdp-tm-dev] FindBugs|
Hi Martin,Installing FindBugs in Eclipse is pretty straightforward - you can install it either from the update site  using the Update Manager or download the plug-in from the project downloads page. When installed you can scan the existing projects in the workspace by right-click on the project and selecting FindBugs from the context menu. When the scan is complete, the found problems can be browsed using the FindBugs perspective. You can also specify FindBugs options for each project from the project's Properties page. There is support for filter files which can be used for excluding false positives. However, maintaining these filter files will require additional efforts from the committers. I guess for now we can run the tool once and fix what we believe are real bugs. For the long term we should decide whether or not to include FindBugs in our daily work on TM.
Cheers, Rado  http://findbugs.cs.umd.edu/eclipse Oberhuber, Martin wrote:
Thanks for the pointer, Rado. I can only agree. We are using FIndBugs successfully On all our commercial plugins. For RSE, I have always Wanted to introduce it, but wanted to reduce the number Of normal Eclipse Javac warnings before doing so. But now seems the right time. APIs are frozen, so we Need to focus on the implementations and get our code Bug free. There is only one caveat though: Some of the FindBugs Warnings are false positives. And if somebody has Analyzed an issue and found that it was not an issue After all, there must be some common way of excluding That issue from the warnings in the future, to ensure That not the next developer invests time in checking The same issue again. At Wind River, we have some proprietery means to haveMarkup in the code that supports filtering out FindBugs warnings. Rado do you see any such featureIn the Open Source FindBugs tool? Whoever has a few cycles should download Findbugs And check their code. Finding the bugs early withThe tool saves LOTS of time compared to having A user report it, look at bugzilla, reproduce itEtc... I fully recommend that we all go for it. Installing the plugin is super simple, just Drop it into your dropins folder. Rado can you give more instructions how to set up A project for running findbugs and how to activate It? http://findbugs.sourceforge.net/ Thanks, -- Martin Oberhuber, Senior Member of Technical Staff, Wind River Target Management Project Lead, DSDP PMC Member http://www.eclipse.org/dsdp/tm-----Original Message-----From: dsdp-tm-dev-bounces@xxxxxxxxxxx [mailto:dsdp-tm-dev-bounces@xxxxxxxxxxx] On Behalf Of Radoslav GerganovSent: Donnerstag, 24. April 2008 17:00 To: Target Management developer discussions Subject: [dsdp-tm-dev] FindBugs Hi folks,I would like to draw your attention to a very useful tool for finding bugs in Java programs called FindBugs. It performs static analysis over Java byte code and search for bugs. There is also an Eclipse plug-in which provides integration with the Eclipse platform and can be used for finding bugs in Eclipse projects. You can take a look at  for more details about the tool.So I gave it a try over some of the TM plug-ins and I got some interesting results. Here is a very small excerpt of the results for org.eclipse.rse.core and org.eclipse.rse.ui:org.eclipse.rse.core ----- H B ES: Comparison of String parameter using == or != in org.eclipse.rse.internal.core.model.SystemRegistry.updateHost( IHost, IRSESystemType, String, String, String, String, int) H B ES: Comparison of String parameter using == or != in org.eclipse.rse.internal.core.filters.SystemFilterPool.setOwni ngParentName(String) H B ES: Comparison of String parameter using == or != in org.eclipse.rse.core.subsystems.RemoteServerLauncher.setServer Script(String)M C NP: Possible null pointer dereference of SystemFilterPoolManager.name inorg.eclipse.rse.internal.core.filters.SystemFilterPoolManager. setName(String) org.eclipse.rse.ui ----- H C EC: Call to equals() comparing unrelated class and interface in org.eclipse.rse.internal.ui.view.SystemViewFilterStringAdapter .doDelete(Shell, Object, IProgressMonitor)H B HE: org.eclipse.rse.internal.ui.view.team.SystemTeamViewSubSystemConfigurationNode defines equals and uses Object.hashCode() M D BC: instanceof will always return true in org.eclipse.rse.core.subsystems.SubSystemConfiguration.createS erverLauncher(IConnectorService),since all org.eclipse.rse.core.subsystems.RemoteServerLauncher are instances oforg.eclipse.rse.core.model.ILabeledObject M D BC: instanceof will always return true in org.eclipse.rse.internal.ui.view.SystemView.getSelection(Contr ol), since allorg.eclipse.swt.widgets.TreeItem are instances of org.eclipse.swt.widgets.TreeItemM B Eq: org.eclipse.rse.ui.open.SystemQuickOpenPageDescriptor defines compareTo(Object) and usesObject.equals()While some of the problems can be classified as "warnings" or "bad practice" there are also such that are real bugs. I think it will be useful for everyone to check his stuff with this tool. http://findbugs.sourceforge.net/ Cheers, Rado _______________________________________________ dsdp-tm-dev mailing list dsdp-tm-dev@xxxxxxxxxxx https://dev.eclipse.org/mailman/listinfo/dsdp-tm-dev_______________________________________________ dsdp-tm-dev mailing list dsdp-tm-dev@xxxxxxxxxxx https://dev.eclipse.org/mailman/listinfo/dsdp-tm-dev
Back to the top