Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
RE: [dsdp-tm-dev] FindBugs

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 have
Markup in the code that supports filtering out 
FindBugs warnings. Rado do you see any such feature
In the Open Source FindBugs tool?

Whoever has a few cycles should download Findbugs
And check their code. Finding the bugs early with
The tool saves LOTS of time compared to having 
A user report it, look at bugzilla, reproduce it
Etc... 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 Gerganov
> Sent: 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[1]. 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 [1] 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 in
> org.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.SystemTeamViewSubSystemC
> onfigurationNode 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 of
> org.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 all
> org.eclipse.swt.widgets.TreeItem are instances of 
> org.eclipse.swt.widgets.TreeItem
> 
> M B Eq: org.eclipse.rse.ui.open.SystemQuickOpenPageDescriptor 
> defines compareTo(Object) and uses
> Object.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.
> 
> [1] http://findbugs.sourceforge.net/
> 
> Cheers,
> Rado
> _______________________________________________
> dsdp-tm-dev mailing list
> dsdp-tm-dev@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/dsdp-tm-dev
> 


Back to the top