Announcing InspectionGadgets version 1.0

Announcing version 1.0 of the InspectionGadgets plugin, available via the PluginManageror at

Changes in version 1.0

New inspections:

  • Infinite Recursion

  • Auto-Boxing

  • Auto-Unboxing

  • Unnecessary boxing

  • Unnecessary unboxing

  • Class without no-arg constructor

  • Unnecessary 'final' for method parameter

  • Unnecessarily qualified static method call

  • Unqualified static method call

  • setUp() with incorrect signature

  • tearDown() with incorrect signature

  • setUp() doesn't call super.setUp()

  • tearDown() doesn't call super.tearDown()

  • Test method with incorrect signature

  • 'assert' statement

  • Use of 'enum' as identifier

  • Use of '$' in identifier

plus huge numbers of bugfixes.

Special thanks go to Bas Leijdekkers and Keith Lea for their assistance on this release.

With the 1.0 release, development on InspectionGadgets will be going into "bugfixes-only" mode for the next several months. Thanks to everyone for your ideas, code, and criticism as I developed InspectionGadgets. It's thanks to your interest and support that InspectionGadgets has become the most full-featured and powerful Java static analysis tool available today, and the most-downloaded IDEA plugin. Most especial thanks to JetBrains in general and Maxim Shafirov in particular, for giving me this marvelous platform to build on.

I hope I've helped you kill a lot of bugs.

--Dave Griffith

Comment actions Permalink

This is really cool.

There appears to be a bug with the Portability check for auto-boxing. Given the conditional construct below:
String configComponent = ((null == m_params) ? null : m_params.getConfigurationComponent());

InspectionGadgets complains of auto-boxing:
 Problem synopsis:           
Auto-boxing null == m_params at line 312

And suggests the following fix:

String configComponent = ((new Boolean(null == m_params)) ? null : m_params.getConfigurationComponent());


Please sign in to leave a comment.