Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [eclipse-dev] Found a few hundred bugs in Eclipse


... only a few hundred?



Bill Pugh <pugh@xxxxxxxxxx>
Sent by: eclipse-dev-admin@xxxxxxxxxxx

07/19/2004 02:22 PM

Please respond to
eclipse-dev

To
eclipse-dev@xxxxxxxxxxx
cc
Subject
[eclipse-dev] Found a few hundred bugs in Eclipse





We're working on a open source static analysis tool, called FindBugs,  
for finding a number of different kinds
of bugs or antipatterns in Java programs. We've founds lots of bugs in  
most large Java programs we've looked
at, including Eclipse. Our tool generates 810 medium/high warnings  
about correctness problems in Eclipse 3.0. From
past experience, we believe that corresponds to hundreds of real bugs  
(we generally have a less than 50% false
positive rate) [Note: 810 warnings come from all code in all jar files  
shipped with Eclipse, which includes some
third-party libraries]

We'd love to get some people in the Eclipse project to start using our  
tool. We use Eclipse, have an Eclipse
plugin, and even got an Eclipse innovation award for work on our tool.

However, part of our research is to see if other people think our tool  
is finding bugs that they believe
warrant fixing. So we'd really love for people in the Eclipse project  
to start using our tool, rather than
having us submit separate bug reports for each bug.

We'd love to work with anyone interested in applying our tool to  
Eclipse, and we are always interested in feedback
on improving the accuracy of our existing bug detectors and writing new  
ones.

  Thanks,
                Bill Pugh

FindBugs: http://findbugs.sourceforge.net/

A handful of some of the bugs we found in Eclipse 3.0:

----
H C NP: Null pointer dereference in  
org.eclipse.jdt.internal.debug.ui.JDIModelPresentation.getPrimitiveValue
TypeSignature(org.eclipse.jdt.debug.core.IJavaValue)
At JDIModelPresentation.java:[line 535]

                String sig= type.getSignature();
                if (sig != null || sig.length() == 1) {
       return sig;
                }

Should be && rather than ||
----
H C NP: Null pointer dereference in  
org.eclipse.team.internal.ccvs.core.CVSSyncInfo.getLocalContentIdentifie
r()  At CVSSyncInfo.java:[line 357]

   IResource local = getLocal();
   if (local != null || local.getType() == IResource.FILE) {

Should be && rather than ||

---
M C RV: org.eclipse.search.internal.ui.SearchDialog$1.getText(Object)  
ignores return value of java.lang.String.substring(int,int)  At  
SearchDialog.java:[line 187]

 int i= label.indexOf('&');
 while (i >= 0) {
   if (i < label.length())
              label= label.substring(0, i) + label.substring(i+1);
   else
              label.substring(0, i);
   i= label.indexOf('&');
   }

The call to substring in the else cause has no effect since the return  
value is ignored, so this will be an
infinite loop if the label ends in &.


----
H C Nm: VERY confusing to have methods  
org.eclipse.jface.dialogs.InputDialog.getOkButton() and  
org.eclipse.jface.dialogs.Dialog.getOKButton()

InputDialog.getOkButton() is apparently intended to override  
Dialog.getOKButton(), but doesn't
because the name is capitalized differently.





_______________________________________________
eclipse-dev mailing list
eclipse-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
http://dev.eclipse.org/mailman/listinfo/eclipse-dev


Back to the top