Detecting and preventing bugs with pluggable type-checking
Abstract
Are you tired of null pointer exceptions, unintended side effects, SQL injections, concurrency errors, mistaken equality tests, and other run-time errors that appear during testing or in the field? A pluggable type system can guarantee the absence of these errors, and many more.
This talk describes a set of pluggable type checkers that operate as annotation processors for javac. The type checkers are easy to use (for example, the syntax is much less verbose than generics) and have found many errors in real programs. Java 7 will contain syntactic support for type annotations, but in the meanwhile your code remains backward-compatible with all versions of Java.
The talk also describes the Checker Framework, which enables a programmer to write an annotation processors that checks custom properties of your code and prevents even more bugs. The talk will demonstrate the tools in action.
The type-checkers and the Checker Framework are publicly available at http://types.cs.washington.edu/jsr308/