Categories


Authors:
andrep
logos
opensource software

FindBugs-IDEA

Products: IntelliJ IDEA, Android Studio

Vendor: Andre Pfeiler

Email:

Website: http://findbugs-idea.googlecode.com

SourceCode: http://findbugs-idea.googlecode.com

License: http://findbugs-idea.googlecode.com

Bugtracker page

Forum page

Description:

The FindBugs plugin for IntelliJIDEA
Provides static byte code analysis to look for bugs in Java code from within IntelliJ IDEA. FindBugs is a defect detection tool for Java that uses static analysis to look for more than 200 bug patterns, such as null pointer dereferences, infinite recursive loops, bad uses of the Java libraries and deadlocks. FindBugs can identify hundreds of serious defects in large applications (typically about 1 defect per 1000-2000 lines of non-commenting source statements). The name FindBugs™ and the FindBugs logo are trademarked by The University of Maryland. As of July, 2008, FindBugs has been downloaded more than 700,000 times. FindBugs requires JRE (or JDK) 1.5.0 or later to run. However, it can analyze programs compiled for any version of Java and is used by many major companies and financial institutions. FindBugs-IDEA uses FindBugs™ under the hood. for more information see http://findbugs.sourceforge.net/.

..."We use IDEA inspections and FindBugs complementary. FindBugs is running in our continuous integration process and IDEA inspections are used during coding." What about using both during coding from within IntelliJIDEA?

FindBugs-IDEA plugin features:

  • findbugs-2 support
  • Quickfix: annotate, suppress findbugs patterns (GutterIcon and document markup (alt+enter))
  • idea 9 until 12 compatibility
  • configure findbugs on idea project and module level
  • jump to source from results shown in toolwindow including anonymous classes
  • bug descriptions, solutions
  • run analysis always in background
  • run findbugs analysis on all affected files after compile
  • min. priority to report
  • background scanning
  • configurable effort run level
  • configurable detectors
  • bug categories to report
  • file filter (include, exclude, exclude baseline bugs)
  • load additional detector plugins like fb-contrib.jar
  • group results by: bug category, classname, package, priority, bug rank
  • intellij local history support
  • quick search within the result tree
  • run Findbugs analysis as IntelliJ inspection (experimental)
  • Analyze actions (all actions are also available in the intellij project tree, toolbar menu, context menu):
    • analyze all modified files
    • analyze all files on the active changelist (available from FindBugs-IDEA main ToolWindow and the ChangelistToolWindow)
    • analyze class under cursor
    • analyze current editor file
    • analyze all files of an intellij project
    • analyze all files of an intellij module
    • analyze all files of the selected package
    • analyze a bunch of selected files (project tree)
  • export a bug collection to html and/or xml with limited configurable dir based archive support
  • import a bug collection from xml
  • configurable : open an exported bug collection html page in the intellij configured browser
  • configurable : preview found bugs in an editor preview panel

Downloads: 49686
Rating:
Participated in rating: 23
Version Since Build Until Build File/URL Size (Kb) Date Details
0.9.97. 90.10781. . Download 5582 2013-01-08 17:30:52 details
0.9.96. 80.9013. . Download 5929.45 2010-10-30 02:01:48 details
0.9.92. . . Download 5048.59 2009-11-08 20:27:45 details
. .
14 updates are hidden show all updates
Screenshot #3021
Screenshot #2540
Screenshot #5750
Screenshot #5749
Screenshot #2538
Screenshot #3016
Screenshot #2539
Screenshot #3020
Screenshot #2536
Screenshot #2543
Screenshot #3017
Screenshot #2541
Screenshot #3018
Screenshot #3019
Screenshot #2542
Screenshot #2567

Recent change notes:

findbugs-2 support Quickfix: annotate, suppress findbugs patterns (GutterIcon and document markup (alt+enter)) idea 9 until 12 compatibility

Comments:

1234>
Anonymous
Rated: noRate
2013-03-27 13:47:01
Plesse file a bug
.
skingsland
Rated: noRate
2013-03-26 01:56:31
None of the buttons work; they all produce this error message: 5:51:28 PM NoSuchMethodError: Error during dispatching of java.awt.event.MouseEvent[MOUSE_RELEASED,(743,31),absolute(743,53),button=1,modifiers=Button1,clickCount=1] on frame2: com.yourkit.util.Asserts.notNull(Ljava/lang/Object;)V I'm using IDEA 12.1 EAP (build 129.60, the latest).
.
Anonymous
Rated:
2013-03-08 01:58:37
.
Anonymous
Rated:
2013-02-26 18:45:58
For Intellij 12.0.4 the following errors are raised: 2:30:45 PM NullPointerException: Error during dispatching of java.awt.event.MouseEvent[MOUSE_RELEASED,(42,740),absolute(70,768),button=1,modifiers=Button1,clickCount=1] on frame2 2:30:49 PM NullPointerException: Error during dispatching of java.awt.event.MouseEvent[MOUSE_RELEASED,(47,741),absolute(75,769),button=1,modifiers=Button1,clickCount=1] on frame2 4:37:03 PM ArrayIndexOutOfBoundsException: Error during dispatching of java.awt.event.InvocationEvent[INVOCATION_DEFAULT,runnable=org.twodividedbyzero.idea.findbugs.common.EventDispatchThreadHelper$1@3bd3553,notifier=null,catchExceptions=false,when=1361889423381] on apple.awt.CToolkit@40993028: 31
.
Anonymous
Rated: noRate
2013-01-03 15:05:27
fixed with the next release - within 2 or 3 days.
.
damian1000
Rated:
2013-01-03 14:34:34
I'm getting the following exception when I try to run Find Bugs using IDEA 12.0.1 Ultimate under JDK: 1.7.0_09 NoSuchFieldError: Error during dispatching of java.awt.event.MouseEvent[MOUSE_RELEASED,(62,14),absolute(752,563),button=1,modifiers=Button1,clickCount=1] on win0: COMPILATION_CLASSES
.
Anonymous
Rated: noRate
2012-12-17 22:38:47
will fix that hopefully during the next week
.
Anonymous
Rated:
2012-12-17 13:53:33
IDEA 12 Community Edition isn't compatible with the latest FindBugs plugin (((((((
.
zimmermatt
Rated:
2012-05-11 03:00:58
Thanks for the useful plug-in.

When will the 0.9.97 version be released to the jetbrains repo?

Also, there are a lot of dead links (e.g., http://findbugs-idea.dev.java.net/).
.
Anonymous
Rated:
2011-04-27 21:28:48
f.great idea integration.
.
andrep
Rated: noRate
2011-04-17 13:18:45
psi/search/GlobalSearchScope.allScope must not be null
java.lang.IllegalArgumentException: Argument 0 for @NotNull parameter of com/intellij/psi/search/GlobalSearchScope.allScope must not be null


^^^^ fixed in the upcoming release 0.9.97

--

* fixed IdeaUtilImpl#getProject sometimes returns null
.
ylangisc
Rated:
2011-03-31 14:51:04
same here for 10.0.1
.
Anonymous
Rated:
2011-01-21 15:10:05
Problems in IDEA 10.0.1

Error during dispatching of java.awt.event.InvocationEvent[INVOCATION_DEFAULT,runnable=org.twodividedbyzero.idea.findbugs.common.ui.EventDispatchThreadHelper$1@623423,notifier=null,catchExceptions=false,when=1295611690727] on sun.awt.windows.WToolkit@7177a6: Argument 0 for @NotNull parameter of com/intellij/psi/search/GlobalSearchScope.allScope must not be null
java.lang.IllegalArgumentException: Argument 0 for @NotNull parameter of com/intellij/psi/search/GlobalSearchScope.allScope must not be null
at com.intellij.psi.search.GlobalSearchScope.allScope(GlobalSearchScope.java)
at org.twodividedbyzero.idea.findbugs.common.util.IdeaUtilImpl.findJavaPsiClass(IdeaUtilImpl.java:757)
at org.twodividedbyzero.idea.findbugs.common.util.BugInstanceUtil$1.run(BugInstanceUtil.java:176)
at org.twodividedbyzero.idea.findbugs.common.ui.EventDispatchThreadHelper.invokeLater(EventDispatchThreadHelper.java:128)
at org.twodividedbyzero.idea.findbugs.common.util.BugInstanceUtil.getPsiElement(BugInstanceUtil.java:173)
at org.twodividedbyzero.idea.findbugs.gui.tree.model.BugInstanceNode.getPsiFile(BugInstanceNode.java:151)
at org.twodividedbyzero.idea.findbugs.gui.tree.model.GroupTreeModel.addProblem(GroupTreeModel.java:108)
at org.twodividedbyzero.idea.findbugs.gui.tree.model.GroupTreeModel.addToGroup(GroupTreeModel.java:225)
at org.twodividedbyzero.idea.findbugs.gui.tree.model.GroupTreeModel.addToGroup(GroupTreeModel.java:49)
at org.twodividedbyzero.idea.findbugs.gui.tree.model.Grouper.group(Grouper.java:208)
at org.twodividedbyzero.idea.findbugs.gui.tree.model.GroupTreeModel.group(GroupTreeModel.java:161)
at org.twodividedbyzero.idea.findbugs.gui.tree.model.GroupTreeModel.addNode(GroupTreeModel.java:152)
at org.twodividedbyzero.idea.findbugs.gui.toolwindow.view.BugTreePanel.addNode(BugTreePanel.java:128)
at org.twodividedbyzero.idea.findbugs.gui.toolwindow.view.ToolWindowPanel$4.run(ToolWindowPanel.java:279)
at org.twodividedbyzero.idea.findbugs.common.ui.EventDispatchThreadHelper$1.run(EventDispatchThreadHelper.java:115)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
at com.intellij.ide.IdeEventQueue.e(IdeEventQueue.java:652)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:505)
at com.intellij.ide.IdeEventQueue.b(IdeEventQueue.java:404)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:368)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:178)
at java.awt.Dialog$1.run(Dialog.java:1046)
at java.awt.Dialog$3.run(Dialog.java:1098)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Dialog.show(Dialog.java:1096)
at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl$MyDialog.show(DialogWrapperPeerImpl.java:670)
at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl.show(DialogWrapperPeerImpl.java:412)
at com.intellij.openapi.ui.DialogWrapper.showAndGetOk(DialogWrapper.java:1063)
at com.intellij.openapi.ui.DialogWrapper.show(DialogWrapper.java:1048)
at com.intellij.openapi.vcs.changes.ui.CommitChangeListDialog.a(CommitChangeListDialog.java:132)
at com.intellij.openapi.vcs.changes.ui.CommitChangeListDialog.commitChanges(CommitChangeListDialog.java:176)
at com.intellij.openapi.vcs.changes.ui.CommitChangeListDialog.commitChanges(CommitChangeListDialog.java:150)
at com.intellij.openapi.vcs.changes.ui.CommitChangeListDialog.commitPaths(CommitChangeListDialog.java:144)
at com.intellij.openapi.vcs.actions.AbstractCommonCheckinAction$1.run(AbstractCommonCheckinAction.java:65)
at com.intellij.openapi.vcs.changes.Waiter.onSuccess(Waiter.java:79)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.a(ProgressManagerImpl.java:280)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.run(ProgressManagerImpl.java:439)
at com.intellij.openapi.vcs.changes.CallbackData$3.run(CallbackData.java:78)
at com.intellij.openapi.vcs.changes.UpdateRequestsQueue.invokeAfterUpdate(UpdateRequestsQueue.java:153)
at com.intellij.openapi.vcs.changes.ChangeListManagerImpl.invokeAfterUpdate(ChangeListManagerImpl.java:258)
at com.intellij.openapi.vcs.actions.AbstractCommonCheckinAction.actionPerformed(AbstractCommonCheckinAction.java:53)
at com.intellij.openapi.vcs.actions.AbstractVcsAction.actionPerformed(AbstractVcsAction.java:61)
at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher$3.performAction(IdeKeyEventDispatcher.java:524)
at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.processAction(IdeKeyEventDispatcher.java:564)
at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.d(IdeKeyEventDispatcher.java:444)
at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.dispatchKeyEvent(IdeKeyEventDispatcher.java:197)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:491)
at com.intellij.ide.IdeEventQueue.b(IdeEventQueue.java:404)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:368)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Caused by: org.twodividedbyzero.idea.findbugs.common.CallerStack: called from
at org.twodividedbyzero.idea.findbugs.common.ui.EventDispatchThreadHelper.invokeLater(EventDispatchThreadHelper.java:111)
at org.twodividedbyzero.idea.findbugs.gui.toolwindow.view.ToolWindowPanel.onEvent(ToolWindowPanel.java:277)
at org.twodividedbyzero.idea.findbugs.gui.toolwindow.view.ToolWindowPanel.onEvent(ToolWindowPanel.java:68)
at org.twodividedbyzero.idea.findbugs.common.event.EventManagerImpl.fireEvent(EventManagerImpl.java:88)
at org.twodividedbyzero.idea.findbugs.report.BugReporter.doReportBug(BugReporter.java:123)
at edu.umd.cs.findbugs.AbstractBugReporter.reportBug(AbstractBugReporter.java:163)
at edu.umd.cs.findbugs.FilterBugReporter.reportBug(FilterBugReporter.java:42)
at edu.umd.cs.findbugs.DelegatingBugReporter.reportBug(DelegatingBugReporter.java:78)
at edu.umd.cs.findbugs.BugAccumulator.accumulateBug(BugAccumulator.java:67)
at edu.umd.cs.findbugs.BugAccumulator.accumulateBug(BugAccumulator.java:80)
at edu.umd.cs.findbugs.detect.FindReturnRef.sawOpcode(FindReturnRef.java:154)
at edu.umd.cs.findbugs.visitclass.DismantleBytecode.visit(DismantleBytecode.java:758)
at edu.umd.cs.findbugs.detect.FindReturnRef.visit(FindReturnRef.java:85)
at edu.umd.cs.findbugs.visitclass.BetterVisitor.visitCode(BetterVisitor.java:217)
at edu.umd.cs.findbugs.visitclass.PreorderVisitor.visitCode(PreorderVisitor.java:166)
at edu.umd.cs.findbugs.bcel.OpcodeStackDetector.visitCode(OpcodeStackDetector.java:42)
at org.apache.bcel.classfile.Code.accept(Code.java:141)
at edu.umd.cs.findbugs.visitclass.PreorderVisitor.doVisitMethod(PreorderVisitor.java:226)
at edu.umd.cs.findbugs.visitclass.PreorderVisitor.visitJavaClass(PreorderVisitor.java:271)
at org.apache.bcel.classfile.JavaClass.accept(JavaClass.java:276)
at edu.umd.cs.findbugs.BytecodeScanningDetector.visitClassContext(BytecodeScanningDetector.java:36)
at edu.umd.cs.findbugs.DetectorToDetector2Adapter.visitClass(DetectorToDetector2Adapter.java:68)
at edu.umd.cs.findbugs.FindBugs2.analyzeApplication(FindBugs2.java:979)
at edu.umd.cs.findbugs.FindBugs2.execute(FindBugs2.java:230)
at org.twodividedbyzero.idea.findbugs.tasks.FindBugsTask.runFindBugs(FindBugsTask.java:102)
at org.twodividedbyzero.idea.findbugs.tasks.FindBugsTask.run(FindBugsTask.java:91)
at com.intellij.openapi.progress.impl.ProgressManagerImpl$TaskRunnable.run(ProgressManagerImpl.java:474)
at com.intellij.openapi.progress.impl.ProgressManagerImpl$2.run(ProgressManagerImpl.java:205)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:233)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.runProcess(ProgressManagerImpl.java:196)
at com.intellij.openapi.progress.impl.ProgressManagerImpl$6.run(ProgressManagerImpl.java:353)
at com.intellij.openapi.application.impl.ApplicationImpl$6.run(ApplicationImpl.java:382)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
at com.intellij.openapi.application.impl.ApplicationImpl$1$1.run(ApplicationImpl.java:130)
.
Anonymous
Rated: noRate
2010-12-08 23:51:04
> Version 0.9.96 doesn't work with IntelliJ Community Edition 9.0.4.

^^^ this is not true, for me it works, great. please, try open the toolwindow and run the anaylzis again. ...please use the bug tracker to file a bug.
.
Anonymous
Rated: noRate
2010-12-08 23:40:30
Version 0.9.96 doesn't work with IntelliJ Community Edition 9.0.4.

Create simple project, put a class. Following happens:


Error during dispatching of java.awt.event.InvocationEvent[INVOCATION_DEFAULT,runnable=org.twodividedbyzero.idea.findbugs.common.ui.EventDispatchThreadHelper$1@a75b6f,notifier=null,catchExceptions=false,when=1291840602302] on apple.awt.CToolkit@e0cdc9
java.lang.NullPointerException
at com.intellij.openapi.wm.ToolWindowManager.getInstance(ToolWindowManager.java:30)
at org.twodividedbyzero.idea.findbugs.gui.common.BalloonTipFactory.showToolWindowInfoNotifier(BalloonTipFactory.java:78)
at org.twodividedbyzero.idea.findbugs.gui.common.BalloonTipFactory.showToolWindowInfoNotifier(BalloonTipFactory.java:73)
at org.twodividedbyzero.idea.findbugs.gui.toolwindow.view.ToolWindowPanel$3.run(ToolWindowPanel.java:271)
at org.twodividedbyzero.idea.findbugs.common.ui.EventDispatchThreadHelper$1.run(EventDispatchThreadHelper.java:115)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:633)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:627)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:508)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:405)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:369)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Caused by: org.twodividedbyzero.idea.findbugs.common.CallerStack: called from
at org.twodividedbyzero.idea.findbugs.common.ui.EventDispatchThreadHelper.invokeLater(EventDispatchThreadHelper.java:111)
at org.twodividedbyzero.idea.findbugs.gui.toolwindow.view.ToolWindowPanel.onEvent(ToolWindowPanel.java:267)
at org.twodividedbyzero.idea.findbugs.gui.toolwindow.view.ToolWindowPanel.onEvent(ToolWindowPanel.java:68)
at org.twodividedbyzero.idea.findbugs.common.event.EventManagerImpl.fireEvent(EventManagerImpl.java:88)
at org.twodividedbyzero.idea.findbugs.report.BugReporter.finish(BugReporter.java:203)
at edu.umd.cs.findbugs.DelegatingBugReporter.finish(DelegatingBugReporter.java:97)
at edu.umd.cs.findbugs.DelegatingBugReporter.finish(DelegatingBugReporter.java:97)
at edu.umd.cs.findbugs.FindBugs2.analyzeApplication(FindBugs2.java:1007)
at edu.umd.cs.findbugs.FindBugs2.execute(FindBugs2.java:230)
at org.twodividedbyzero.idea.findbugs.tasks.FindBugsTask.runFindBugs(FindBugsTask.java:102)
at org.twodividedbyzero.idea.findbugs.tasks.FindBugsTask.run(FindBugsTask.java:91)
at com.intellij.openapi.progress.impl.ProgressManagerImpl$TaskRunnable.run(ProgressManagerImpl.java:428)
at com.intellij.openapi.progress.impl.ProgressManagerImpl$2.run(ProgressManagerImpl.java:198)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:223)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.runProcess(ProgressManagerImpl.java:189)
at com.intellij.openapi.progress.impl.ProgressManagerImpl$6.run(ProgressManagerImpl.java:343)
at com.intellij.openapi.application.impl.ApplicationImpl$5.run(ApplicationImpl.java:331)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:680)
at com.intellij.openapi.application.impl.ApplicationImpl$1$1.run(ApplicationImpl.java:125)
.
1234>