[[ thread-safe.org ]]

Frequently Asked Questions

What do I have to provide to use the checker?
To use the checker, all you need to provide is the class under test. Often, using a class depends on other classes, for example, to create parameters for calling a method of the class under test. We therefore recommend to upload a Jar file that, in addition to the class under test, contains other classes that the class depends on.

Can the checker find bugs in real-world classes?
Yes! We applied the checker to several open source projects and found previously unknown thread safety bugs. For example, the checker found a bug in the StringBuffer class of the Java standard library and a bug in the Apache Common DBCP library.

Do I have to specify which methods to call, for example, for creating parameters?
No. The checker selects methods on its own without requiring any input from you.

The checker did not find a bug. Is my class thread-safe?
We don't know. The checker can't guarantee to find all thread safety bugs in a class, because classes are not tested exhaustively. However, the checker guarantees that each reported warning is indeed a violation of thread safety. In other words, the checker can't prove correctness, but it reports only true positives.