code review
review tool software inspection
code review tool blog site map contact us
Sales/Support: (978) 236-7860
Free book about peer code review
Free webinars about code review

Code Collaborator made it possible to review all our code all the time

Jagdev Dhillon
Senior Director of Engineering
GoldenGate Software
read more

NullSafe Features

Detecting NULL-pointer exceptions is useful, but without the features below the task of removing them could be overwhelming. You need flexibility in strictness, deployment, and how to address "errors" that you know really aren't errors.

Extremely low false-positive rate
False-positives are the death of any analysis tool. If you spend half your time changing your code just to appease a tool, you're unhappy, unproductive, and probably making your code harder to read.
Source code optional
A complete analysis must be able to penetrate any class files, any jars, whether or not you have the source code, whether or not you have accompanying JavaDoc. If code is present additional features are available, but source code is never required.
JavaDoc annotations
Sometimes you need to be able to say "I don't want to check for null input because it's against my method's contract to pass in null in the first place. If null is passed in, I should throw NullPointerException." Learn about NullSafe JavaDoc annotations and other features that let you do exactly this.
Highly configurable levels of strictness
Introducing a tool like NullSafe might uncover thousands of possible errors, but it's usually not practical to address them all right away. NullSafe exposes many options for what kinds of errors to check for and how strict, and you can even tune the rules for a class or method using JavaDoc. You have granular control over what the tool will enforce.
Deep function-call analysis
It's not enough to just look a function in isolation. If you don't dig into the functions it calls and fully understand all the possible inputs and outputs, the tool will either miss exceptions or give false-positives.
Tool support for Null-Safe Compliance levels
The Null-Safe Compliance levels are a vocabulary to describe just how "null-safe" your class, package, or module really is. As a report, it can summarize the state of all your code; as a configuration in the tool you can enforce different levels of strictness for different parts of the code.
On-disk cache
Large projects can take a long time to analyze, yet most changes to source code are incremental. An intelligent on-disk cache speeds up NullSafe so incremental changes inside your IDE or editor can be checked quickly and efficiently. You can always disable or clear the cache if you wish.