Lint4j Eclipse Plugin Changelog

Version 0.9.13

  • Fixed two problems with the Lint4j Builder not analyzing Java classes that don't have a .java ending, and analyzing Java files that may have been excluded from compilation
  • Only important checks are enabled if no configuration exists
  • Fixed a bug that would result in a false positive warning when invoking ObjectOutputStream.writeObject() on a null argument
  • Fixed a type identification issue that resulted in false positive warnings
  • Improved warning for debug level logging that creates StringBuffers: suppress the warning in catch blocks, and support the debug(Object, Throwable) method
  • Plugin operations audit and remove markers can now operate on Eclipse working sets
  • Switch related audits don't emit false positives when the switch type is an enum, and all constants have case statements
  • Switch related audits now handle nested switch statements correctly
  • Constants of value 0 with l, f or d suffix were not correctly identified as being unnecessary as field initialization
  • The SuppressWarning annotation with level "all" is now supported by all audits
  • Skip Java 1.5 warnings if compiler compliance is set to a higher standard than the Java runtime supports

Version 0.9.12

  • Added ability to use Lint4j from views others than the Package Explorer
  • Added an audit for an if statement without effect, which is most likely the reason of a superflous semicolon such if(something) ; {//intended if block statements}
  • Fixed an exception when the Lint4j builder was enabled and a Java class removed
  • Removed support for legacy version of Lint4j
  • Extensive API rework to support headless builds and pluggable report generators

Version 0.9.11

  • Fixed a problem where Eclipse 3.1.x did not activate Lint4j on a JDK 1.5 runtime.
  • Fixed a problem that enabled Lint4j actions on Jar files
  • Added a FAQ section to the plugin documentation

Version 0.9.10

  • Added an audit for hidden StringBuffer creations in StringBuffer, StringBuilder, PrintStream and PrintWriter methods.
  • Added audits to detect empty blocks and statements in loop bodies and if, synchronized, catch and finally statements
  • Added audit that detects StringBuffer generation in log4j debug calls that are not guarded with an if(isDebugEnabled) statement
  • Problem Markers are created to highlight the code in question
  • Fixed wrong progress monitor display
  • Added a warning when a one character string literal is used in certain method calls where a character literal would be more efficient
  • Added an audit that discovers control flow statements in the body of an if(log.isDebugEnabled()) block
  • Added an audit that discovers equals() invocations with a null argument
  • Added an audit that discovers package visible methods that are never directly invoked
  • Added an audit to detect Externalizable classes that inherit read/writeExternal
  • Fixed broken marker help. However, not all audits provide help yet.
  • Added a menu entry to create feedback mail to

Version 0.9.9

  • 18 new audits are available, 38 total
  • The plugin can now be used in headless builds
  • Several bug fixes to resolve false positive warnings
  • PackageFragmentRoots can now be ignored in an audit
  • Completely rearchitected for extensibility
  • Certified on Eclipse 3.1.x and 3.2RC1 through RC6

Version 0.9.8

Initial version.