ThreadSafe

Find concurrency bugs

The Java™ platform allows developers to build high performance concurrent software that exploits modern hardware.

ThreadSafe is a static analysis tool for finding concurrency bugs and potential performance issues in Java™ programs.

Concurrency is often the most natural way to design a software system, even when high performance is not critical. But concurrent software is difficult to get right, especially in a team that has many demands on it.

I Code JavaThreadSafe looks for the most common concurrency bugs… and some rarer bugs too. It can check your application conforms to many of the recommendations for concurrent Java found in the CERT Oracle Secure Coding Standard for Java.

Adapted to your workflow

ThreadSafe for EclipseEclipse
SonarQube
Command Line

ThreadSafe analyses are available in three different packages to suit your environment:

  • Eclipse plug-in: shows problems in the IDE where bugs are easiest to investigate and fix.
  • SonarQube plug-in: provides a shared view of ThreadSafe results for your team.
  • Command Line: builds HTML reports of problems cross-referenced with source code.

Download Free Trial


In Depth

Technical Briefing: Maintaining safe concurrent code with ThreadSafe
An in-depth demonstration of the use of ThreadSafe for analysing and fixing concurrent code using the Eclipse plugin, explaining some of the technology underlying ThreadSafe’s advanced static analysis.

Detecting Deadlocks without Drudgery
Using ThreadSafe to quickly and easily find potential deadlocks in your code.

Concurrency: Testing isn’t good enough
Why traditional testing and QA approaches to concurrent applications fall short.

Case Studies

Apache Mina Case Study (PDF)
Contemplate has identified issues in open source code bases related to the use of concurrent techniques. The example attached was found in a component of a leading financial markets communications protocol.
 

Trading System Case Study (PDF)
Contemplate has successfully identified potential risks to production stability in trading applications of a major investment bank.